Beginning ethereum smart contracts programming: with examples in python, solidity, and javascript le

Page 1


Visit to download the full and correct content document: https://textbookfull.com/product/beginning-ethereum-smart-contracts-programming-wi th-examples-in-python-solidity-and-javascript-lee/

More products digital (pdf, epub, mobi) instant download maybe you interests ...

Biota

Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cookloucas/

Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners Chris Dannen

https://textbookfull.com/product/introducing-ethereum-andsolidity-foundations-of-cryptocurrency-and-blockchainprogramming-for-beginners-chris-dannen/

Ethereum for Architects and Developers With Case Studies and Code Samples in Solidity Springerlink (Online Service)

https://textbookfull.com/product/ethereum-for-architects-anddevelopers-with-case-studies-and-code-samples-in-solidityspringerlink-online-service/

Beginning Functional JavaScript. Functional Programming with JavaScript using EcmaScript 6 1st Edition Anto Aravinth

https://textbookfull.com/product/beginning-functional-javascriptfunctional-programming-with-javascript-using-ecmascript-6-1stedition-anto-aravinth/

Beginning Functional JavaScript: Functional Programming with JavaScript Using EcmaScript 6 1st Edition Anto Aravinth

https://textbookfull.com/product/beginning-functional-javascriptfunctional-programming-with-javascript-using-ecmascript-6-1stedition-anto-aravinth-2/

Ethereum for Architects and Developers: With Case Studies and Code Samples in Solidity 1st Edition Debajani Mohanty

https://textbookfull.com/product/ethereum-for-architects-anddevelopers-with-case-studies-and-code-samples-in-solidity-1stedition-debajani-mohanty/

Good Habits for Great Coding: Improving Programming Skills with Examples in Python Michael Stueben

https://textbookfull.com/product/good-habits-for-great-codingimproving-programming-skills-with-examples-in-python-michaelstueben/

Beginning Programming with Python For Dummies 2nd Edition John Paul Mueller

https://textbookfull.com/product/beginning-programming-withpython-for-dummies-2nd-edition-john-paul-mueller/

Blockchain The Ultimate Guide to the World of Blockchain Technology Bitcoin Ethereum Cryptocurrency Smart Contracts 1st Edition Takashima

https://textbookfull.com/product/blockchain-the-ultimate-guideto-the-world-of-blockchain-technology-bitcoin-ethereumcryptocurrency-smart-contracts-1st-edition-takashima/

Beginning Ethereum Smart Contracts Programming

With Examples in Python, Solidity and JavaScript

Beginning Ethereum Smart Contracts Programming: With Examples in Python, Solidity and JavaScript

Wei-Meng Lee

Ang Mo Kio, Singapore

ISBN-13 (pbk): 978-1-4842-5085-3

ISBN-13 (electronic): 978-1-4842-5086-0 https://doi.org/10.1007/978-1-4842-5086-0

© 2019 by Wei-Meng Lee

Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484250853. For more detailed information, please visit http://www.apress.com/source-code.

Introduction

Welcome to Beginning Ethereum Smart Contracts Programming!

This book is a quick guide to getting started with Ethereum Smart Contracts programming. It first starts off with a discussion on blockchain and the motivations behind it. You will learn what is a blockchain, how blocks in a blockchain are chained together, and how blocks get added to a blockchain. You will also understand how mining works and discover the various types of nodes in a blockchain network.

Once that is out of the way, we will dive into the Ethereum blockchain. You will learn how to use an Ethereum client (Geth) to connect to the Ethereum blockchain and perform transactions such as sending ethers to another account. You will also learn how to create private blockchain networks so that you can test them internally within your own network.

The next part of this book will discuss Smart Contracts programming, a unique feature of the Ethereum blockchain. Readers will be able to get jumpstarted on Smart Contracts programming without needing to wade through tons of documentation. The learn-by-doing approach of this book makes you productive in the shortest amount of time. By the end of this book, you would be able to write smart contracts, test them, deploy them, and create web applications to interact with them.

The last part of this book will touch on tokens, something that has taken the cryptocurrency market by storm. You would be able to create your own tokens and launch your own ICO and would be able to write token contracts that allow buyers to buy tokens using Ethers.

This book is for those who want to get started quickly with Ethereum Smart Contracts programming. Basic programming knowledge and an understanding of Python or JavaScript are recommended.

I hope you will enjoy working on the sample projects as much as I have enjoyed working on them!

CHAPTER 1

Understanding Blockchain

One of the hottest technologies of late is Blockchain. But what exactly is a blockchain? And how does it actually work? In this chapter, we will explore the concept of blockchain, how the concept was conceived, and what problems it aimed to solve. By the end of this chapter, the idea and motivation behind blockchain would be crystal clear.

Tip For the clearly impatient – A blockchain is a digital transaction of records that’s arranged in chunks of data called blocks. These blocks link with one another through a cryptographic validation known as a hashing function. Linked together, these blocks form an unbroken chain – a blockchain. A blockchain is programmed to record not only financial transactions but virtually everything of value. Another name for blockchain is distributed ledger.

Hold on tight, as I’m going to discuss a lot of concepts in this chapter. But if you follow along closely, you’ll understand the concepts of blockchain and be on your way to creating some really creative applications on the Ethereum blockchain in the upcoming chapters!

Tip Ethereum is an open-source public blockchain that is similar to the Bitcoin network. Besides offering a cryptocurrency known as Ether (which is similar to Bitcoin), the main difference between Bitcoin and itself is that it offers a programming platform on top of the blockchain, called Smart Contract. This book focuses on the Ethereum blockchain and Smart Contract.

Motivations

Behind Blockchain

Most people have heard of cryptocurrencies, or at least, Bitcoin.

Note The technology behind cryptocurrencies is blockchain.

To understand why we need cryptocurrencies, you have to first start with understanding a fundamental concept – trust. Today, any asset of value or transaction is recorded by a third party, such as bank, government, or company. We trust banks won’t steal our money, and they are regulated by the government. And even If the banks fail, it is backed by the government. We also trust our credit card companies – sellers trust credit card companies to pay them the money, and buyers trust credit card companies to settle any disputes with the sellers.

Placement of Trusts

All these boil down to one key concept – placement of trust. And that is, we place our trust on a central body. Think about it, in our everyday life, we place our trusts on banks, and we place our trusts on our governments.

Even for simple mundane day-to-day activities, we place our trusts in central bodies. For example, when you go to the library to borrow a book, you trust that the library would maintain a proper record of the books that you have borrowed and returned.

The key theme is that we trust institutions but don’t trust each other. We trust our government, banks, even our library, but we just don’t trust each other. As an example, consider the following scenario. Imagine you work at a cafe, and someone walks up to you and offers you a US ten-dollar bill for two cups of coffee. And another person who offers to pay you for the two cups of coffee using a handwritten note saying he owes you ten dollars. Which one would you trust? The answer is pretty obvious, isn’t it? Naturally you would trust the US ten-dollar bill, as opposed to the handwritten note. This is because you understand that using the ten-dollar bill, you can use it elsewhere to exchange for other goods or services, and that it is backed by the US government. In contract, the handwritten note is not backed by anyone else (except perhaps the person who wrote it), and hence it has literally no value.

Now let’s take the discussion a bit further. Again, imagine you are trying to sell something. Someone comes up to you and suggests paying for your goods using the currencies as shown in Figure 1-1.

Figure 1-1. Currencies from two countries

Would you accept the currencies as shown in the figure? Here, you have two different currencies – one from Venezuela and one from Zimbabwe. In this case, the first thing you consider is whether these currencies are widely accepted and also your trust in these governments. You might have read from the news about the hyperinflation in these two countries, and that these currencies might not retain its value over time.

And so, would you accept these currencies as payment?

Trust Issues

Earlier on, I mentioned that people trust institutions and don’t trust each other. But even established economies can fail, such as in the case of the financial crisis of the United States in 2007–2008. Investment bank Lehman Brothers collapsed in September 2008 because of the subprime mortgage market. So, if banks from established economies can

collapse, how can people in less developed countries trust their banks and governments? Even if the banks are trusted, your deposits may be monitored by the government, and they could arrest you based on your transactions.

As we have seen in the example in the previous section, there are times when people don’t trust institutions, especially if the political situation in that country is not stable.

All these discussions bring us to the next key issue – even though people trust institutions, institutions can still fail. And when people lose trust in institutions, people turn to cryptocurrencies. In the next section, we will discuss how we can solve the trust issues using decentralization, a fundamental concept behind cryptocurrency.

Solving Trust Issues Using Decentralization

Now that you have seen the challenges of trust – who to trust and who not to trust, it is now time to consider a way to solve the trust issues. In particular, blockchain uses decentralization to solve the trust issue.

In order to understand decentralization, let’s use a very simple example that is based on our daily lives.

Example of Decentralization

To understand how decentralization solves the trust issue, let’s consider a real-life example. Imagine a situation where you have three persons with DVDs that they want to share with one another (see Figure 1-2).

The first thing they need to do is to have someone keep track of the whereabouts of each DVD. Of course, the easiest is for each person to keep track of what they have borrowed and what they have lent, but since people inherently do not trust each other, this approach is not very popular among the three persons.

To solve this issue, they decided to appoint one person, say B, to keep a ledger, to hold a record of the whereabouts of each DVD (see Figure 1-3).

Figure 1-2. Sharing DVDs among a group of people

Figure 1-3. Appointing a particular person to keep the records

This way, there is a central body to keep track of the whereabouts of each DVD. But wait, isn’t this the problem with centralization? What happens if B is not trustworthy? Turns out that B has the habit of stealing DVDs, and he in fact could easily modify the ledger to erase the record of DVDs that he has borrowed. So, there must be a better way. And then, someone has an idea! Why not let everyone keep a copy of the ledger (see Figure 1-4)? Whenever someone borrows or lent a DVD, the record is broadcast to everyone, and everyone records the transaction.

Figure 1-4. Getting everyone to keep the records

We say that the record keeping is now decentralized! We now have three persons holding the same ledger. But wait a minute. What if A and C conspire to change the records together so that they can steal the DVDs from B? Since majority wins, as long as there is more than 50% of the people with the same records, the others would have to listen to the majority. And because there are only three persons in this scenario, it is extremely easy to get more than 50% of the people to conspire.

The solution is to have a lot more people to hold the ledger, especially people who are not related to the DVDs sharing business (see Figure 1-5).

Figure 1-5. Getting a group of unrelated people to help keep the records

This way, it makes it more difficult for one party to alter the records on the ledger, and that in order to alter a record, it would need to involve a number of people altering the record all at the same time, which is a time-consuming affair. And this is the key idea behind distributed ledger, or commonly known as blockchain.

Blockchain As a Distributed Ledger

Now that we have a better idea of a distributed ledger, we can now associate it with the term – blockchain. Using the DVD rental example, each time a DVD is borrowed or returned, a transaction is created. A number of transactions are then grouped into a block. As more transactions are performed, the blocks are linked together cryptographically, forming what we now call a blockchain (see Figure 1-6).

Figure 1-6. Transactions form a block, and then blocks are then chained ChApTEr 1 UndErSTAnding

Based on what we have discussed, we can now summarize a few important points:

• Centralized databases and institutions work when there is trust in the system of law, governments, regulatory bodies, and people.

• A decentralized database built on the blockchain removes the need for the trust in a central body.

• A blockchain can be used for anything of value, not just currencies.

How Blockchain Works

At a very high level, a blockchain consists of a number of blocks. Each block contains a list of transactions, as well as a timestamp (see Figure 1-7).

Figure 1-7. Every blockchain has a beginning block known as the genesis block

The blocks are connected to each other cryptographically, the details in which we will discuss in the sections ahead. The first block in a blockchain is known as the genesis block.

Note Every blockchain has a genesis block.

So, the next important questions is – how do you chain the blocks together?

Chaining the Blocks

Before we discuss how blocks in a blockchain are chained together, we have to discuss a key concept in blockchain – hashing. A hash function is a function that maps data of arbitrary size to data of fixed size. By altering a single character in the original string, the resultant hash value is totally different from the previous one. Most importantly, observe that a single change in the original message results in a completely different hash, making it difficult to know that the two original messages are similar.

A hash function has the following characteristics:

• It is deterministic – the same message always results in the same hash.

• It is a one-way process – when you hash a string, it is computationally hard to reverse a hash to its original message.

• It is collision resistant – it is hard to find two different input messages that hash to the same hash.

We are now ready to discuss how blocks in a blockchain are chained together. To chain the blocks together, the content of each block is hashed and then stored in the next block (see Figure 1-8). That way, if any transactions in a block is altered, that is going to invalidate the hash of the current block, which is stored in the next block, which in turn is going to invalidate the hash of the next block, and so on.

Figure 1-8. Chaining the blocks with hashes

Observe that when hashing the content of a block, the hash of the previous block is hashed together with the transactions. However, do take note that this is a simplification of what is in a block. Later on, we will dive into the details of a block and see exactly how transactions are represented in a block.

Storing the hash of the previous block in the current block assures the integrity of the transactions in the previous block. Any modifications to the transaction(s) within a block causes the hash in the next block to be invalidated, and it also affects the subsequent blocks in the blockchain. If a hacker wants to modify a transaction, not only must he modify the transaction in a block but all other subsequent blocks in the blockchain. In addition, he needs to synchronize the changes to all other computers on the network, which is a computationally expensive task to do. Hence, data stored in the blockchain is immutable, for they are hard to change once the block they are in is added to the blockchain.

Up to this point, you have a high-level overview of what constitutes a blockchain and how the blocks are chained together. In the next section, you will understand the next important topic in blockchain – mining.

Mining

Whenever you talk about blockchain or cryptocurrencies, there is always one term that comes up – mining. In this section, you will learn what is mining, and what goes on behind the scene.

Mining is the process of adding blocks to a blockchain. In a blockchain network, such as the Bitcoin or Ethereum network, there are different types of computers known as nodes. Computers on a blockchain that add blocks to the blockchain are known as miner nodes (or mining nodes, or more simply miners).

We will talk about the different types of nodes later on in this course, but for now, we want to talk about a particular type of node, known as the miner node. The role of the miner node is to add blocks to the blockchain.

But how are blocks added?

Broadcasting Transactions

When a transaction is performed, the transaction is broadcasted to the network (see Figure 1-9). ChApTEr 1 UndErSTAnding BLoCkChAin

Figure 1-9. Transactions are broadcasted to mining nodes, which then assemble them into blocks to be mined

Each mining node may receive them at different times. As a node receives transactions, it will try to include them in a block. Observe that each node is free to include whatever transactions they want in a block. In practice, which transactions get included in a block depends on a number of factors, such as transaction fees, transaction size, order of arrival, and so on.

At this point, transactions that are included in a block but which are not yet added to the blockchain are known as unconfirmed transactions. Once a block is filled with transactions, a node will attempt to add the block to the blockchain.

Now here comes the problem – with so many miners out there, who gets to add the block to the blockchain first?

The Mining Process

In order to slow down the rate of adding blocks to the blockchain, the blockchain consensus protocol dictates a network difficulty target (see Figure 1-10).

Figure 1-10. Hashing the block to meet the network difficulty target

In order to successfully add a block to the blockchain, a miner would hash the content of a block and check that the hash meets the criteria set by the difficulty target. For example, the resultant hash must start with five zeros and so on.

As more miners join the network, the difficultly level increases, for example, the hash must now start with six zeros and so on. This allows the blocks to be added to the blockchain at a consistent rate.

But, wait a minute, the content of a block is fixed, and so no matter how you hash it, the resultant hash is always the same. So how do you ensure that the resultant hash can meet the difficulty target? To do that, miners add a nonce to the block, which stands for number used once (see Figure 1-11).

Figure 1-11. Adding a nonce to change the content of the block in order to meet the network difficulty target

The first miner who meets the target gets to claim the rewards and adds the block to the blockchain. It will broadcast the block to other nodes so that they can verify the claim and stop working on their current work of mining their own blocks. The miners would drop their current work, and the process of mining a new block starts all over again. The transactions that were not included in the block that was successfully mined will be added to the next block to be mined.

REWARDS FOR MINERS

in the case of Bitcoin, the block reward initially was 50 BTC and will halve every 210,000 blocks. At the time of writing, the block reward is currently at 12.5 BTC, and it will eventually be reduced to 0 after 64 halving events. For Ethereum, the reward for mining a block is currently 2 ETh (Ether).

BLOCKS ADDING RATES

For Bitcoin, the network adjusts the difficulty of the puzzles so that a new block is being mined roughly every 10 minutes. For Ethereum, a block is mined approximately every 14 seconds.

Proof of Work

The process in which blocks are mined and added to the blockchain is known as the Proof of Work (PoW). It is difficult to produce the proof but very easy to validate. A good example of Proof of Work is cracking a combination lock – it takes a lot of time to find the right combination, but it is easy to verify once the combination is found.

Proof of Work uses tremendous computing resources – GPUs are required, while CPU speed is not important. It also uses a lot of electricity, because miners are doing the same work repeatedly – find the nonce to meet the network difficulty for the block.

A common question is why you need to use a powerful GPU instead of CPU for mining? Well, as a simple comparison, a CPU core can execute 4 32-bit instructions per clock, whereas a GPU like the Radeon HD 5970 can execute 3200 32-bit instructions per clock. In short, the CPU excels at doing complex manipulations to a small set of data, whereas the GPU excels at doing simple manipulations to a large set of data. And since mining is all about performing hashing and finding the nonce, it is a highly repetitive task, something that GPU excels in.

Tip When a miner has successfully mined a block, he earns mining fees as well as transaction fees. That’s what keeps miners motivated to invest in mining rigs and keep them running 24/7, thereby incurring substantial electricity bills.

Immutability of Blockchains

In a blockchain, each block is chained to its previous block through the use of a cryptographic hash. A block’s identity changes if the parent’s identity changes. This in turn causes the current block’s children to change, which affects the grandchildren, and so on. A change to a block forces a recalculation of all subsequent blocks, which requires enormous computation power. This makes the blockchain immutable, a key feature of cryptocurrencies like Bitcoin and Ethereum.

As a new block is added to the blockchain, the block of transactions is said to be confirmed by the blockchain. When a block is newly added, it’s deemed to have one confirmation. As another block is added to it, its number of confirmation increases. Figure 1-12 shows the number of confirmations that the blocks in a blockchain have. The more confirmations a block has, the more difficult it is to remove it from the blockchain.

Tip in general, once a block has six or more confirmations, it’s deemed infeasible for it to be reversed. Therefore, the data stored in the blockchain is immutable.

Figure 1-12. Confirmations of blocks in a blockchain

Blockchain in More Detail

In the previous section, you learned that a block contains a nonce, timestamp, and the list of transactions. That was a simplification. In real implementation, a block consists of

• A block header

• The list of transactions

1 UndErSTAnding BLoCkChAin

The block header in turn consists of the following:

• The hash of the previous block

• Timestamp

• Merkle root

• Nonce

• Network difficulty target

Note that the block header contains the Merkle root, and not the transactions (see Figure 1-13). The transactions are collectively represented as a merkle root, details of which will be discussed in the next few sections.

Figure 1-13. A blo ck contains the block header, which in turns contains the Merkle root of the transactions

ChApTEr

Types of Nodes

Before we address the rationale for storing the Merkle root in the block header, we need to talk about the types of nodes in a blockchain network. Figure 1-14 shows the different types of nodes in a blockchain network.

Figure 1-14. Different types of nodes in a blockchain network

As we mentioned in our earlier sections, computers connected to the blockchain network are known as nodes. We have discussed the role of mining nodes, whose key responsibility is to gather transactions into blocks and then try to add the block to the blockchain by finding the nonce that satisfies the network difficulty. Mining nodes are also known as full nodes.

Tip note tha t full nodes are not necessarily mining nodes. ho wever, mining nodes need to be a full node.

The purpose of a full node is to ensure the integrity of the blockchain and people running full nodes do not get rewards. On the other hand, mining nodes are rewarded when they add a block to the blockchain.

An example of a full node is a desktop wallet, which allows users to perform transaction using the cryptocurrency.

Each full node has a copy of the entire blockchain. Full nodes also validate every block and transactions presented to it.

Besides full nodes, there are also light nodes. Light nodes help to verify transactions using a method called simplified payment verification (SPV). SPV allows a node to verify if a transaction has been included in a block, without needing to download the entire blockchain. Using SPV, light nodes connect to full nodes and transmit transactions to the full nodes for verifications.

Light nodes only need to store the block headers of all the blocks in the blockchain. An example of a light node is a mobile wallet, such as the Coinbase mobile app for iOS and Android. Using a mobile wallet, a user can perform transactions on the mobile device.

Note desktop wallets can be full node or light node.

And so, we can summarize the types of nodes that we have discussed thus far:

• Full node

• Maintains a complete copy of the blockchain

• Able to verify all transactions since the beginning

• Verifies a newly created block and add it to the blockchain

• Visit the following sites to see the current number of full nodes for the following blockchains:

• Bitcoin – https://bitnodes.earn.com

• Ethereum – www.ethernodes.org/network/1

• Mining node (must be a full node)

• Works on a problem (finding the nonce)

• Light node (e.g., wallets)

• Maintains the headers of the blockchain

• Uses SPV to verify if a transaction is present and valid in a block

Another random document with no related content on Scribd:

mitä hän ja serkku olivat keskenään puhuneet. Mitä vanha vapaaherratar ajatteli ja sanoi siitä hän tietysti viisi välitti.

Itse asiassa ei Joachimin olisi tarvinnut pitää salassa keskusteluaan Stjernen kanssa. Kaikki oli tapahtunut hyvin juhlallisesti. Nuori Skytte oli alusta aikain esiintynyt hyvin kunnioittavasti ja kohteliaana ja Niilo Olavi joka viime aikoina oli kyllikseen kuullut äitinsä ennustuksia "morsiosta joka tuo rakastajan myötäjäisiksi", oli levollisesti mutta tunteellisena sanonut että kun hänellä nyt vähemmin kuin milloinkaan ennen oli toiveita voittaa

Agneta Skytten sydämen, ei häntä myöskään hänen takiansa tarvinnut pitää kotoa ja perhepiiristä eroitettuna. Niilo Olavi kohteli Joachimia koko ajan jonkunmoisena valtuutettuna lähettiläänä Munkebodasta, eikä sanallakaan maininnut heidän kilpakosintaansa. Joachim kohta ymmärsi, eikä hänkään tätä arkaluontoista asiaa koskettanut. Eihän se itse asiassa kuulunut Niilo Olaville miten Agnetan kohtalo vastedes suoriutuisi, kun hän itse ei enää ollut hänen elämäänsä määräämässä.

Sitten oli Figge ukko, joka korkeammasta määräyksestä ei ollut mistään tietävinään tullut sisään ja kaikki kolme olivat juoneet lasin totia parhaassa toveruudessa Stjerne oli tavallista vaiteliaampi ja joi tavallista enemmän. Sitten tarjosi vapaaherratar lasin teetä ja

Joachim sai hänen huuliltaan kuulla ensimäisen varsinaisen selityksen käänteesen, joka suuressa määrin häntä huvitti.

"Jaa, jaa rakas Corydonini", vanha nainen taputti häntä ystävällisesti, mutta vähän kova kätisesti poskelle, pienillä luisevilla sormillaan. "Kun nyt pian saamme Amarylliksemme morsiusvuoteesen, muistammeko silloin joskus vanhaa Malviina Stjerneä, jonka ansioksi se pääasiallisesti on luettava?"

"Armollinen vapaaherrattareni voitte olla varma että ketään en ole useammin muistava kuin teitä", vastasi Joachim käsi sydämellään, sydämellisesti kiitollisena hänen arvokkaasta ja viisaasta sekaantumisestaan asiaan, vaikkei se kohta ollutkaan varsinaisesti hänen tähtensä tapahtunut.

"Tyhjää puhetta", sanoi vapaaherratar päätään pudistaen. "Minä tuntisin huonosti maailmaa jos uskoisin että nuori poika muistaa vanhaa ämmää kauemmin kuin se on hänellä silmäin edessä. Ei, ei ajattele sinä Amaryllistäsi — entre nous hän kyllä sen ansaitsee! ja huolehdi siitä että on aika kaksoset ensi juhannuksena".

Joachim ei olisi juuri hänen pilapuheistaan välittänyt, mutta lupasi kuitenkin nauraen, että kyllä vapaaherratar kummiksi pääsee.

"Pidän sanoistasi kiinni, mon cher!" huusi vapaaherratar ja uhkasi häntä pikkusormellaan. "Varjelkoon häntä taivas jos hän minut pettää. Kun tytöllä nyt vaan ei olisi kalvetustautia, näyttää siltä melkein… Niin nyt olen sen pahimman sotkun vyyhdissä selvittänyt — lopun saa hän tehdä itse. Niilo Olavia minun täytyy vielä kerran korvista ohjata".

Sitte antoi hän Joachimin suudella kättään, lähetti terveisiä Karin Marialle, ja viime hetkellä tarkasti Joachimin hevosen satula-vyötä, jonka tallirenki oli huolimattomasti pingoittanut. Vapaaherratar näki kaikki mitä ympärillään tapahtui ja sai nyt suureksi huvikseen tehdä pilaa Joachimista, jonka "rakkaus oli tehnyt sokeaksi".

Joachim oli äärettömän tyytyväinen matkaansa kun hän kello yhdeksän illalla ratsasti Munkebodan pihaan.

* * * * *

Nyt kesällä, kun päivät olivat pitemmät, ei Lotti täti parhaimmalla tahdollaankaan voinut tarkastaa kuinka kauan nuoret olivat ylhäällä. Aivan mahdottomaksi osottautui saada Joachimia ja tyttöjä makuulle määrä kellonlyöntinä, kun aurinko oli vielä korkealla taivaalla eivätkä linnutkaan vielä olleet menneet levolle. Kitara polvillaan istui Joachim leveällä kiviportaalla ja Karin Maria ja Beata — useimmiten myöskin mamseli Fiken — äänetönnä toistensa vieressä muutamia rappusia ylempänä.

Ja vaatimattomalla tuntehikkaalla tavallaan lauloi nuori Skytte kitaran säestyksellä Geijerin miehekkäitä lauluja, ja toisinaan aivan säestämättä vanhoja skånelaisia, alkuperäisesti tanskalaisia, kansanlauluja, joita hän varhaisimpana lapsuutensa aikana ja osaksi nyt uudelleen oli Munkebodan alustalaisilta oppinut. Talon rengit ja piiat istuivat ryhmässä riippakoivun alla nurkassa ja kuuntelivat yhtä hartaina kuin tytötkin — silloinkin kun hän lauloi pieniä ranskalaisia viime vuosisadan "chansoneja", joita hän oli muinoin iloiselta äidiltään oppinut, ja jotka ukko Niilo — avoimessa ikkunassa iltapiippuaan poltellen — säännöllisesti pyysi uudelleen. Ankara Lotti tätikin tuli toisinaan kuuntelemaan, seisoi ylinnä ovella korkea, kovitettu myssy päässä ja ahdas, koinsyömä viitta heitettynä luiseville hartioilleen.

"Tulkaa nyt sisään tytöt!" sanoi hän kun laulu loppui. "Aikoja sitten olisi teidän pitänyt maata vuoteessanne!"

Mutta kukaan ei ollut kuulevinaankaan. Uppiniskaisuutta oli ilmassa — sitä ei voinut enää auttaa. Lotti tädin täytyi päivittäin myöntää itselleen että Joachim oli tuonut mukanaan uuden ajan ja uuden hengen Munkebodaan.

Sillä "nuori Skytte", perillinen, oli vähitellen tullut päähenkilöksi talossa, pääpisteeksi jonka ympäri kaikki liikkui. Ei ainoastaan Agneta ja hänen siskonsa pitäneet häntä arvokkaimpana talossa vaan Niilo ukkokin joka lähes kolmekymmentä vuotta oli ollut majuurskan ensimäinen ja nöyrin palvelija meni päivä päivältä vihollisen puolelle. Nuorukaisen hilpeä huolettomuus ja tulinen, rohkea miehuus viehättivät vanhusta ja hän huomasi salaisella, surumielisellä ilolla hänen haaveellisessa, vaikutuksille alttiissa luonteessaan niin suurta sukulaisyhtäläisyyttä oman luonteensa kanssa, että se aivan täydellisesti sovitti veljenpojan ajattelemattomuuden ja uppiniskaisuuden. Ja Joachimin vähän epämääräisille ja hämärille tulevaisuuden unelmille, hänen rehelliselle, kiihkoisalle liittymiselleen suuren vallankumouksen kuolemattomiin, nyt vähitellen uudelleen eloon heränneisiin aatteisiin tunsi setä luonnollista ja lämmintä myötätuntoisuutta, jota ei hänen armonsa järkevä hallinto yksinäisellä Munkebodalla tahi pyhän allianssin pakollinen rauha Euroopassa koskaan olleet voineet tukahuttaa. Sillä Niilo Skytte oli ollessaan nuori kornetti kuningas Kustaan joukossa, ollut — niinkuin hän itse sanoi — "suuri jakobiini", ja kukaan ei ylpeää vapautta, voimakasta persoonallista vaikutusta lämpimämmin ihaillut kuin hän. Lapsellisesti ihaili hän nuorukaista joka aina oli kekseliäs, aina omaa etuaan katsomaton, jolla aina oli tuhat rohkeaa tuumaa valmiina, joita hän sitten vakuutuksen lämmöllä, äärettömällä itsepintaisuudella ja loppumattomalla kaunopuheliaisuudellaan osasi puolustaa. Lotti täti pudisti päätään ja piti vastaan, minkä voi, mutta kaikella viisaudellaan ei hän voinut estää että maatilan hoito yhä enemmän siirtyi Joachimin käsiin. Majuuri tunsi itsensä vanhaksi ja väsyneeksi; kun vaimonsa häntä torui että hallitusohjat liukuivat pois käsistään, puolustautui hän sillä, että oli kaikille puolueille parasta jos Joachim hänen johdannollaan,

vielä hänen eläessään perehtyi oloihin — hänhän se kuitenkin kerran tulisi isännäksi! Ja väki — epäluotettava, itsepäinen, toraisa ja viekas rajakansa, jota on niin vaikea pitää kurissa ja joka vaistomaisesti kunnioittaa ainoastaan itsetietoista voimaa — se piti nyt jo kymmenen kertaa enemmän arvossa nuorta luutnanttia jonka käskyt vaikka olivatkin olleet hieman ennenaikaisia eikä aina tarkoin punnittuja, kuitenkin olivat selviä ja säntillisiä ja, joka yhtä hyvin osasi antaa korvapuustin ajallaan kuin lootusetelin sille, joka teki mielensä mukaan kuin vanhaa majuuria, joka suuttui, marisi, antoi anteeksi ja pisti nuuskaa nenäänsä harmin päälle.

Joachim oli jo jättänyt sisään erohakemuksensa. Ellei täti ennen vuoden loppua suostunut hänen ja Agnetan avioliittoon oli hän varmasti päättänyt rakastettunsa estelyistä huolimatta mennä joksikin aikaa ulkomaiseen sotapalvelukseen. Olla päivä päivän jälkeen täällä kotosalla Munkebodassa toisiaan katsellen oli liian vaikea koetus sen hän jo käsitti.

Parempi siis erota muutamaksi vuodeksi ja odottaa. Kireät olot Puolassa, missä joka silmän räpäys odotettiin kapinan puhkeavan ilmi, pyörivät nyt kaikkien nuorten mielissä ja moni ruotsalainen sydän sykähteli halusta päästä sorretun kansan avuksi. Sillä Ruotsissa ei unohdettu, että Puola oli kerran ollut veljesmaa ja sitte se valtakunta, jolle suuret Kaarlot olivat uhranneet useimmat ajatuksensa ja enimmän verensä; sen vapauden edestä taisteleminen moskovalaista perintövihollista vastaan oli Joachim Skytelle ja monelle muulle hänen ikäisellensä kuin erittäin kaunis ja jalo pyrintöperä.

Näinä pitkinä kesäiltoina puhui hän usein Beatan ja Karin Marian kanssa tästä.

Oli jo kulunut hyvä matka heinäkuuta, mutta vielä ei hiiskuttu sanaakaan Agnetan palaamisesta. Karin Maria, joka viime aikoina oli käynyt uskomattoman rohkeaksi — äidin mielestä "itsevaltaiseksi", — viittasikin siihen pari kertaa ja majurikin päästi pari lausuntoa siihen suuntaan, että "kun ei kumminkaan Marieholmalaisenkaan kanssa tullut kihlauksesta mitään, niin eihän tyttölapsen pakottaminenkaan hyödyttäisi mitään" — mutta armollinen rouva oli järkähtämätön. Hän etupäässä ajatteli sitä, eikä sitä salaisuutena pitänytkään, miten "rumalta näyttäisi", jos Agneta parooni Stjernen "hylkäämänä" — sanoessaan tämän sanan nirpisti majuurska tavallisesti huulensa ylpeästi ja katsoi suoraan silmiin sitä, jonka kanssa hän puhui — jos Agneta nyt suoraa päätä naitettiin Joachimille. Oli puhuttu kylliksi seutukunnalla Agnetasta — nyt pitäisi ihmisten saada aikaa unohtaa hänet.

"Mutta äiti" uskalsi Beata silloin sanoa, aivan itku kurkussa: "jos serkku Joachim sitte menee sotaan?…"

"Niin menköön vaan", vastasi majuurska tyynesti. "Se tekisi vain hänelle hyvää. Minun nuoruuteni aikana oli asiaan kuuluvaa, että miehen piti olla osallisena ainakin yhteen sotaretkeen, ennenkuin hän jättäysi lepoon".

"Mutta äiti", lisäsi Beata ujosti, "hän voisi olla paljon enemmän hyödyksi täällä Munkebodassa".

"Tarkoitatko todellakin sitä?… Hän tekisi viisaimmin jos hän antaisi kivien olla rauhassa pellolla", vastasi majuurska lyhyesti, ja myssyn nauhat lepattivat leuan alla, kun hän ajatteli kaikkia niitä parannuspuuhia, joita Joachim oli esittänyt ja joihin hän oli osaksi saanut sedän myönnytyksen. "Siellä jossa ne makaavat, eivät ne

maksa ruutia eikä rahaa, ja maata meillä, Jumalan kiitos, on kylliksi Göingen kihlakunnassa"!

Ainoa, joka ei suorastaan koettanut taivuttaa Lotti tätiä ja itse asiassa viime aikoina tuntui olevan kerrassaan välinpitämätön siitä, josko Agneta tuli kotiin eli jäi Kristianstadiin, oli Joachim serkku itse. Hän melkein ei enää puhunutkaan hänestä ja hänen mielialansa oli paras mitä voi toivoa — vähän epätasainen, mutta ylipäänsä mainio — liiankin hyvä tyttöjen mielestä ja Beatalla ei ollut enää syytä ensinkään valittaa minkään "Roqvaiosain näyttelemisestä".

Karin Marialla oli kumminkin epäluulonsa: hän oli huomannut että Joachim serkulla ja mamseli Fikenillä oli viime aikoina luonnottoman paljon yhteisiä salaisuuksia, kun hän muisti serkun sanat eräänä edellisenä tilaisuutena, päätti hän tästä jotenkin suurella varmuudella, että hän vihdoinkin tavalla tai toisella oli löytänyt yhdyssiteen rakastettunsa kanssa. Mutta hän ei kertonut kellekään luulojaan — eikä koettanut koskaan saada mitään tietää — mitäpä se olisi hyödyttänyt? Senkautta hän olisi vain raskauttanut omaatuntoansa uudella kuormalla, eikä Karin Marian omatunto ollut enää niin vapaa kuin tavallisesti.

Mutta mamseli Fiken raukan omantunnon laita oli pahemminkin, sillä, kuten Karin Maria arvasi, asia todellakin oli… Ollen syvästi vakuutettu siitä että sodassa ja rakkaudessa ovat kaikki keinot luvallisia, oli Joachim taitavasti viekoitellut kiltin mamseli Fikenin hänen ja Agnetan välisen mitä vilkkaimman kirjevaihdon välittäjäksi. Tämä tietysti oli vähän estellyt ja puhunut armollisesta majuurskasta ja neljännestä käskystä, mutta kun hän oli hyvin romantillinen ja kun hänellä oli hellin sydän, mitä olla voi ja osaksi itsetiedottomassa ymmärtäväisyydessään, oli laskenut, että kenties kerran

tulevaisuudessa ei suinkaan olisi haitaksi, että oli tehnyt tulevalle

Munkebodan omistajalle palveluksen, myöntyi hän monien kyynelien perästä "löitnantin" ihastuttaviin, mutta kylläkin vähän sofistisiin, kaunopuheliaisiin pyyntöihin. Hän otti osoitteellaan vastaan

Joachimille tulevat kirjeet ja keksi väsymättömällä, koskaan pettämättömällä kekseliäisyydellään alinomaa uusia keinoja, vähintäkään epäluuloa herättämättä toimittaa hänen epistolansa

Agnetalle. Sopimus tähän kirjevaihtoon oli tapahtunut eräällä uudella yöllisellä vierailulla sotaneuvoksen puutarhassa. Nämät salaiset ratsastukset yön ja pimeän läpi, saadaksensa puolentunnin ajan seistä rakastettunsa akkunan alla, kuulla hänen äänensä ja saada katsoa hänen helliin ruskeisiin silmiinsä, viehättivät, seikkailumaisuudellaan ja romanttisuudellaan nuorta Skytteä mitä suurimmassa määrässä. Vaan kun unestaan herännyt utelias neiti Susen oli viime kerralla vähällä huomata hänet, luopui Joachim hieno tunteisesti tästä uhkarohkeasta ja useammassa kuin yhdessä suhteessa vaarallisesta huvista. Sielullaan ja aistimillaan, kaikella olentonsa uhkamielisyydellä hän rakasti Agnetaa, ahkera ja hellä kirjeiden vaihto jossa tyttö peittelemättä avasi hänelle sisimmän sydämensä, kiinnitti häntä vielä lujemmin morsiameensa. Hän saattoi istua tuntikausia pellonpientareella tai vasikkahaassa ja lukea uudelleen ja yhä uudelleen näitä viehättävän somia kirjeitä tietämättään ikävöiviä, hurmaavia intohimoisia niinkuin Agneta itsekin oli ja sen lisäksi niin viattoman ymmärtäväisiä ja tyttömäisen kainoja, kirjoitustavassaan alati muistuttaen Fiken mamselin: "Kunnioittavasti ja nöyrästi piirtäen".

Agneta soimasi tietysti joka päivä itseään siitä, että täten petti sekä äidin että täti Fagerhjelmin ja Susenin. Mutta istuttuaan koko iltapäivän koruompeluineen sotaneuvoksen syreenimajassa ja oksien välitse kurkisteltuaan Susenin ihailijoita Netti tädin

väsymättömällä tunteellisuudella ääneen lukiessa rouva Cottinin

"Mathildea" — ei hän voinut iltasella, vaikka henki olisi mennyt, olla pistäytymättä leipuri Ullan luona kuulemassa, oliko "kotoa" mitään kuulunut… Kirjeet jalosukuiselle ja siveälle neiti Agneta Skyttelle käärittiin nimittäin paperiin ja osotettiin mamseli Fikenin serkulle, Ullalle, jolla oli pieni leipuriliike sotaneuvoksen talon viereisessä talossa. Siten ei kukaan saanut vihiä Agnetan suuresti laajenneesta kirjevaihdosta.

Vaan Susen ja Netti täti eivät voineet käsittää, miksi Agneta joskus kaikista liikuttavimmissa kohdissa "Mathildessä" äkkiä antoi työn pudota helmaansa ja jäi tuijottamaan eteensä suurilla haaveksivilla silmillä, mitkä hän sitten sulki hymyillen — hymyillen niin hellää, valoisaa ja onnellista hymyä että vanha rouva Cottin ei varmaankaan koskaan elämässään ollut houkutellut esille sellaista.

"Agneta"! huusi Susen ja kutkutti virkkineulallaan häntä niskaan.

"Mitä se taasen on?…"

Mutta täti Ekebäck katsahti ylös pyöreiden silmälasien yli ja käänsi vartaallaan lehteä.

"Unelmia", sanoi hän hajamielisesti. Ja sitten — lähemmin tarkastaen Agnetaa, joka punastui äkkiä ja alkoi ommella kuin henkensä edestä — suopeasti ja veitikkamaisesti hymähtäen:

"Nuoruuden unelmia!…"

Aamulla heinäkuun 20 p:nä seisoivat Beata ja Karin Maria puutarhassa sokeriherneitä poimimassa. He seisoivat kahden puolen kaitaista penkkiä, jossa kellanvihreät, hontelot herneenvarret kiemurtelivat keppejä myöten ylöspäin ja punoutuivat niin tiheäksi verkoksi, ettei Beata puhutellessaan Karin Mariaa nähnyt hänestä muuta kuin valkosen päähineen. Mitä Karin Mariaan tuli, oli keskustelu senlaatuista, ettei hän puolestaan ollenkaan halunnut katsoa sisareensa.

Beata seisoi nimittäin ja "ihmetteli", — jota jo oli tehnyt kuukauden ajan — mitä se Niilo Olavi Stjerne oikeastaan haki Munkebodasta.

Viimeksi hän oli ollut heillä eilen illalla ja kun he aterian jälkeen olivat koko perhe saattamassa vähän matkaa kulki hän kaukana muiden jälessä hevosensa ohjat käsivarren ympärillä ja Karin Maria rinnallaan. Mitä kumman kummaa he olivat jutelleet? Beata pisti nenänsä niin kauas herneen varsien väliin kuin sen suinkin sai, vaan näki niinkuin ennenkin valkoisen päähineen vaan ja Karin Marian puolihansikkaisiin puetut kädet, mitkä hiljaa poimivat ohuita, vihreitä palkoja.

"Luulisipa melkein että hän on rakastunut sinuun", sanoi Beata viimein harmistuneena.

Nyt Karin Maria vastasi. Hän sanoi säyseästi, vaan kuitenkin arvokkaisuudella:

"Olisiko se sitten niin ihmeellistä? Minähän olen ainoa, joka aina olen ollut häntä kohtaan ystävällinen".

"Aina"? ei Beata voinut hämmästyksestään huolimatta olla ivallisesti kysymättä.

"Niin", sanoi Karin Maria rohkeasti — hän käsitti että nyt oli aika tunnustaa. "Totta puhuen olen aina tuntenut kunnioitusta ja myötätuntoisuutta Stjerneä kohtaan".

"Hyvä Jumala, Karin Maria". Beata miltei vaipui herneiden väliin, niin uskomattomattomalta hänestä tämä petos tuntui. "Et suinkaan tarkoittane että sinäkin olet häneen rakastunut"?

Karin Maria oli nyt ottanut ensimäisen vaikean askeleen ja tunsi enemmän ja enemmän olevansa voiton puolella.

"Rakastunut", virkkoi hän hiukan venyttäen sanojaan, "siihen… siihen ei minulla juuri ole taipumusta…" Onneksi ei Beata nähnyt miten hän punastui. "Mutta minun täytyy suoraan tunnustaa, että olen näihin aikoihin, kun olemme niin usein olleet yksissä, ruvennut pitämään oikein paljon… paljon Niilo Olavista".

Karin Maria osasi aina sanoa asian sillä tapaa että se vaikutti Joachim väitti hänellä olevan verrattoman taidon tukkia suun toisilta heti kun avasi omansa. Se onnistui tälläkin kertaa. Beata ei tullut isoon aikaan sanoneeksi sanaakaan.

"Ehkä hän on jo kosinutkin sinua"? kysyi hän vihdoin koettaen olla ivallinen. Beata alkoi nimittäin jo tuntea sitä kunnioitusta, jonka jokainen järkevä ihminen antaa jo tapahtuneelle ja päätetylle asialle.

"On", vastasi Karin Maria aivan levollisesti ja jonkunmoisella ylpeydellä. "Hän lausui eilen muutamia sanoja, jotka… jotka… luulen olevani oikeutettu käsittämään sillä tapaa".

Tässä tunsi Beata ehdottomasti melkein ihailua vanhempaa sisartaan kohtaan. Kuninkaallinen prinsessa ei olisi voinut ilmoittaa hallitsevan ruhtinaan kosintaa suuremmalla kainoudella ja arvokkaisuudella samalla kertaa.

"Mitä sinä vastasit"? kysyi Beata yhä enemmän ihmeissään, nyt ilman vähintäkään ivaa äänessä.

"Pyysin kysymään isältä ja äidiltä — tietysti".

"Mutta silloinhan sinä siis tahdot hänet?…

"En suinkaan minä ole pakotettu ajattelemaan samalla tapaa kuin Agneta sisko"? sanoi Karin Maria vähän terävästi. "Luuletko sinä esimerkiksi, että minä tahtoisin Joachim serkkua? …"

Beata ei voinut enään väittää vastaan. Hän myönsi itselleen, ettei hän ollenkaan voinut Karin Mariaa käsittää.

Oli hetken aikaa aivan hiljaista puutarhassa. Mehiläiset surisivat uneliaasti auringon paisteessa kukkapengerten kohdalla ja apilaniityltä kuului Trulsin viikatteen suhiseva ääni, hänen niittäessään nurmea vaunuparille. Karin Maria, jonka koppa jo oli täysi, kiersi hernepenkin ja istuutui ääneti keskelle kapeaa käytävää sisarensa viereen.

"Rakas Beata", sanoi hän aivan kuin olisi puhunut tavallisimmasta asiasta maailmassa, "nyt voimme saada Agnetan kotiin äidin syntymäpäiväksi".

Beata katsahti ylös — kohtasi sisarensa katseen ja kietoi yhtäkkiä, leppyneenä "kosijaan" ja koko hankkeesen, käsivartensa hänen kaulaansa.

Karin Maria ei sanonut mitään, vaan vastasi syleilyyn tunteellisemmin, kuin hän tavallisesti omisti Beatan "hellyyskohtauksille".

Elokuun 11 päivänä, Susannan päivänä, oli hänen armonsa, rouva Charlotta Susanna Skytten, syntymäpäivä ja samalla nimipäivä, siksi vietti koko perhe sitä päivää vuoden — jouluaattoa lukuunottamatta suurimpana juhlapäivänä. Munkebodan hallitsijatar ei suinkaan suosinut, sen tiesi Jumala ja koko maailma, mitään "joutavia" mutta tänä päivänä hän piti — 1700-luvun tavoille uskollisena sopivana antaa "hämmästyttää" itseään. Siksi hän kiusasi itseään pari tuntia kauemmin sängyssä kuin tavallisesti ja palkitsi sitten aina ilmestyttyään tyttöjen ja mamseli Fikenin laitokset suopealla hymyllä. Nämät alkoivat tavallisesti kaikenmoisiin pukuihin pukeutumisella ja runon lausumisella kahvipöydässä, joka — jos ilma oli suotuisa — katettiin puutarhaan. Tavanmukainen olutjuusto ei tietysti tullut kysymykseenkään tänä juhlapäivänä. Sitte tuli jokainen; esille lahjoineen ja onnitteluineen, joita armollisesti vastaanotettiin ja kehuttiin ja päivällisten jälkeen tulivat naapurit aina kolmen peninkulman päästä nimipäiväkahville ja illalliselle. "Hämmästyksien" arvoa ei koskaan vähentänyt se seikka, että majuurska oli itse ainakin viikkoa ennen Susannan-päivää kääntänyt ylösalasin koko talon siistimisellä leipomisella, kuparin ja hopean kiilloittamisella

sekä vihdoin aivan viimeisinä päivinä lampaiden ja kanojen teurastuksella, kyynärän korkuisten rasvakakkujen leipomisella, maljojen ja jälkiruokien valmistamisella. Huolimatta näistä suurellisista valmistuksista, jotka tietystikin olivat julkinen salaisuus (mamseli Fikeniltä kysyttiin jo neljätoista päivää aikasemmin, laitetaanko haukia pippurijuuren kanssa, vaiko uunipaistia ja kumpi olisi parempi illalliseksi kananpoika persiljakastikkeen kanssa, vai villi sorsa), ei kumminkaan kukaan koskaan vetänyt vähääkään suutansa hymyyn, kun armollinen majuurska juuri kello yhdeksän aikaan keskeytti tanssin ja pyysi herrasväen tyytymään yksinkertaiseen voileipään ja mitä muuta "talossa sattui olemaan".

Tämä elokuun 11 p. ei ollut kangastellut tyttöjen mieleen hetimainkaan niin juhlallisena kuin edelliset. Beata, joka muutoin oli mitä innokkain, kun oli kysymyksessä perhejuhlallisuuksien viettäminen, ei ollut edes voinut pakoittaa itseään neuvottelemaan mamseli Fikenin kanssa senkään vertasesta, kuin jostain pienestä pukeutumisesta. Keskustelun jälkeen Karin Marian kanssa hernemaassa tuntui kumminkin kaikki aivan odottamatta kirkastuvan jälleen, ja päivällisaikana istui hän jo tuumien mielessään juhlan loppukuvaelmaa: rakastavat parit keskeltä kukkaisköynnösten ympäröimänä, kuten hän oli nähnyt eräässä vanhassa Drottningholman juhlaa kuvaavassa kuvassa, jonka sankarittarena oli Hedvig Elisabeth Charlotta. Hän heräsi melkein kuin unesta, kun Bengta tuli sisälle ja hengästyneenä ilmoitti, että hän keittiön rapulta oli nähnyt parooni Stjernen kiessit ja ruunan mäen päällä.

Beata sävähti punaiseksi kuin veri ja sai heti hirveän sydämentykytyksen. Kun he kaikki nousivat kiireesti viilipytyn ympäriltä katsahti hän sen näköisenä kuin hän melkein olisi tuntenut

itsensä rikolliseksi pöydän yli Karin Mariaan, joka pysyi uljaana, mutta punastui myöskin.

"Tänäänkin taas", lausui Niilo ukko suutuksissaan viskatessaan "servietin". "Totta tosiaan hän varmaankin asettuu pian Munkebodaan asumaankin! Hän, piru vieköön, ei käynyt puoleksikaan niin usein, kun hän liikkui kosintahankkeissa!"

"Isä", sanoi Karin Maria hyvin hermostuneesti — Joachim ja Beata eivät kääntäneet silmiänsä hänestä. "Luulen… Olen melkein varma siitä, että parooni Stjernellä on erityistä asiaa isälle ja äidille tänään…"

Hän ei saanut sanotuksi enempää — Niilo Olavi astui kumartaen, vähän punakampana kuin tavallisesti saliin, josta äiti heti vei hänet vieraskamariin. Karin Maria ja Beata viittailivat innokkaasti isällensä että hänkin seuraisi ja vähän hämillään astui ukko perässä.

Karin Maria oli käynyt aivan kalpeaksi — hän seisoi aivan suorana pöydän päässä ja keräili koneellisesti "serviettejä" kokoon. Kun hän katsahti ylös, seisoi Joachim serkku hänen vieressään.

"Karin Maria? …" sanoi hän vain ja laski kätensä kysyvästi hänen kädellensä.

"Niin Joachim", vastasi Karin Maria yhtä merkitseväisesti ja näytti kovin rikolliselta. Beata oli niin pelästynyt, että hän olisi voinut hiipiä pöydän alle päästäksensä näkemästä mitä oli odotettavissa.

Yhtäkkiä otti Joachim hurmauksissaan Karin Mariaa vyötäröltä kiinni ja nosti hänen leukaansa.

"Rakas serkku", sanoi hän sydämellisesti, "tämähän sovittaa kaiken!"

"Luulet ehkä, että minä teen tämän sinun tähtesi?" mutisi Karin

Maria puoleksi nauraen, puoleksi harmissaan.

Joachim nauroi myöskin ja vakuutti kunniasanallaan, ettei hän sentään niin itserakas ole. Sitten vannoi hän ihastuksissaan kalliin valan että Niilo Olavi Stjerne oli parhain ja rehellisin mies auringon alla — vaikkei siltä kuitenkaan ansainnut sellaista helmeä kuin Karin

Maria Skytte oli! Minkä kohteliaisuuden sekä sitä seuraavan onnittelusuudelman Karin Maria vastaanotti sopivalla kainoudella.

Beata seisoi sykkivin sydämin, odottaen että äiti avaisi oven ja kutsuisi Karin Mariaa vieraskamariin. Tämä seremoniia tuntui

Beatasta kauheimmalta mitä vielä oli kokenut ja hän pelkäsi jo edeltäpäin sitä hetkeä jolloin hänen sisäänkäskettynä pitäisi seisoa keskellä lattiaa ja niiailla ja onnitella uutta lankoa, joka ehkä vielä päälle päätteeksi pitäisi velvollisuutenaan syleillä häntä.

"Nyt!" kuiskasi Beata hermostuneesti ja henkäsi syvään, kuullessaan jonkun koskevan lukkoon vierashuoneen puolella.

Karin Maria oikasihe konemaisesti ja astui sisään.

Tuokion seisoivat Joachim ja Beata liikkumattomina, hiljaa ja kuunnellen, vaikk'eivät voineet mitään eroittaa.

"Voitko ymmärtää", sanoi Joachim äkkiä ääneen kuiskaten, "että Karin

Maria hänestä huolii?…"

Mutta nyt tunsi Beata itsensä sisarensa puolesta loukatuksi. Hän oli jo näinä tunteina, keskustelun jälkeen aamupäivällä, ruvennut katsomaan Stjerneä toisilla silmillä — nyt, kun hän niin sanoakseni kuului perheesen — ja Karin Marian sulhasena oli hänellä lukemattomia hyveitä. Mutta yhtäkkiä — kuullessaan liikettä viereisestä huoneesta — keskeytti hän puheensa äkkiä:

"Serkku Joachim", Beata katsoi rukoilevasti häneen ja vetäytyi kyökin ovea kohden. "Sano minä… että minä olen mennyt mamseli Fikenin luokse hetkeksi. Minä…" hän levitti kätensä melkein traagillisesti, "minä en kestä kauempaa"!

Juhlallisen Susannan päivän edellisenä iltana tuli Agneta isän hakemana ja setä Fagerhjelmin ja Susenin saattamana kotiin.

Joachimin ja äidin kirjeestä, sekä vihdoin isältä itseltään oli hän saanut tiedon Karin Marian odottamattomasta kihlauksesta — nyt sai hän iltasella, ensimäisessä sopivassa tilaisuudessa Beatalta kuulla kaikki yksityisseikat, niin hyvin kuin Beata itse, pääasiallisesti mielikuvituksensa avustamana ne tunsi.

Agneta oli nyt ollut niin kauan poissa ja aluksi ympäröi häntä sellainen kaupunkilaisilmakehä, että häntä kohdeltiin koko ensimäisenä iltana melkein yhtä suurella kohteliaisuudella kuin Susenia. Isän mielestä hän oli kasvanut ja äiti huomasi ensi silmäyksellä hänen vähän lihonneen ja että hän oli tullut rinnan kohdalta korkeammaksi. Hänen pukunsa olivat muodikkaammat, tukka oli "koketimmin" kammattu ja tapa oli käynyt paljon tottuneemmaksi ja varmemmaksi. Kun hän iltasella — he saapuivat Munkebodaan vasta kello kahdeksan — etehisessä heitti päältään ruskean päällystakkinsa ja vaaleassa, kukkaisessa karttuunihameessaan astui saliin, matkasta kalpeana, suurin, ruskein, kotiintulon ilosta sädehtivin silmin, näytti hän kaikkien mielestä lempeässä kesäillanhämyssä kauniimmalta, viehkeämmältä

kuin ennen koskaan. Joachimin mielestä ainakin oli niin, kun hän tavanmukaisella kohteliaisuudella vei hänen kätensä huulillensa, — lämpimämpää tervehdystä näissä epävarmoissa oloissa ei Lotti täti olisi antanut hänelle koskaan anteeksi. Agneta punastui hieman alasluoduin silmin; kun hän sitte nosti ne ja kohtasi serkun lämpimän, vakavan ja ihastuneen katseen, välähti hieno, petollisen veitikkamainen hymy hänen huulillaan — hymyily joka samassa sai nuoren Skytten onnen hurmauksissaan hilpeäksi ja veitikkamaiseksi kuin hän itsekin. Sillä vasta nyt tunsi Joachim tuossa hienossa neidissä jälleen oikein oman armaan, itsepäisen, intohimoisen ja kapinallisen Agneta serkkunsa, joka kyllä voi näytellä kohteliaasti huvinäytelmää, mutta ei kumminkaan ottanut kohteliaisuutta eikä huvinäytelmää niin hirveän totisesti.

Kumminkaan ei hän saanut puhua ainoatakaan sanaa Agnetan kanssa sinä iltana. Tuo aina väsymätön Susen neiti ei jättänyt häntä rakastettavalla liehakoinnillaan hetkeksikään rauhaan, toisekseen tiesivät he kyllä molemmat että äidillä, vaikkakin hän istui nyt tarkkaavaisesti kuunnellen sotaneuvoksen juttuja, kyllä oli silmät auki. Joachim oli niin iloinen, ettei hän huolinut ottaa ensinkään omalletunnollensa, vaikkakin oli hakkaillut Susenia niin "hävyttömästi", että Beataa aivan suututti. Illallisen jälkeen, joka viipyi ja viipyi, mentiin melkein kohta levolle; pitihän vieraiden levätä matkan vaivoista ja toisekseen odotettiin että Susannan päivät, kuten tavallisesti, kysyisivät kyllä taas voimia.

Karin Maria nukkui kohteliaisuudesta vieraskamarissa Susenin kanssa.

Siinä tapauksessa tarjousi Beatalle jo tänä iltana tilaisuus kertoa Agnetalle kaikki "pikkuseikkoja myöten".

Äiti itse saattoi tytöt huoneesen ja katsoi että vuode oli säännöllinen ja että kaikki oli hyvässä järjestyksessä Agnetalle, sekä näytti hänelle miten hän oli järjestänyt vasta silitetyt vaatteet hänen kaappinsa laatikkoihin.

Hän viipyi paljon kauemmin kuin mitä hän oli aikonut — koko ajan, kun tytöt riisuutuivat — ja kun hän vihdoinkin läksi, kääntyi hän vielä kerran ovelta takasin ja otti yhtäkkiä nuorimman tyttärensä pään käsiensä väliin suudellen samalla häntä molemmille poskille suuremmalla lämmöllä kuin mitä hän muutoin katsoi hyödylliseksi jopa sopivaksikaan lapsillensa näyttää.

"Nuku hyvin"! sanoi hän vain, selvitti vähän ääntään ja kiiruhti ulos huoneesta.

Mutta Agneta ja Beata nousivat ylös, kyynäspäillään tyynyyn nojaten ja pää käsien välissä kuiskailivat kauan — kunnes kukot alkoivat akkunan alla laulaa ja valoisa elokuun aamu koitti idästä.

Talon kolme tytärtä nousivat aikasin seuraavana aamuna — aamiainen oli katettava huvihuoneesen, pöytä ja äidin tuoli olivat taitehikkaasti kukkasilla koristettavat. Kepeissä, kannattomissa nauhakengissään hiipivät he rappuja alas ja kielsivät Bengtaa, joka ajattelemattomasti laulaa hyräili etehistä siistiessään.

Siellä seisoi mamseli Fiken jo heitä odottamassa ja Joachim serkku suuri veitsi kädessä oli juuri lähdössä koivujen ja kuusenoksien hakuun.

"Eikö Agneta serkku tule mukaan"? kysyi hän viattomasti, pirttipiika Bengtan ja kaikkien muiden kuullen.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.