With the first live implementation of the æternity blockchain, the project has entered a new and exciting phase in which real-world use cases are being built upon the blockchain. In order to encourage the creation of these projects and to explore the vast opportunities æternity has to offer, the team has decided to put extra attention on each of æternity’s native features, starting with State Channels.
Offer a way to scale “off-chain” by only storing channel opening and closing information on the blockchain. Two parties deposit tokens into a channel when they open it and the sum of two deposits is the only amount of tokens that can be used within that channel. The state of the channel is the current balance of each party, co-signed by both parties. There can be multiple exchanges of state between the parties but only the last undisputed state becomes the final closing state of the channel. Each message in the channel carries an ever-increasing counter and the message with the highest counter value is considered to be the last state.
We distinguish between payment and state channels. Payment channels are used as a simple setup where small quantities of cryptocurrency are exchanged incrementally and there is no conflict resolution. True state channels can run smart contracts and resolve conflicts on the blockchain.
Payment channels are suitable for providing, e.g., a video playing service, where the video player sends small chunks of video in exchange for small payments. No smart contracts are involved in the setup and operation of a payment channel. Assuming that the incremental payments are small enough, a single such payment is all that a party stands to lose so no conflict resolution is required.
A State Channel is a two-way interaction channel between two parties. State Channels make it possible to execute smart contracts off-chain, without fees, while keeping the same level of security that the blockchain already provides.
Explore State Channels
In order for you to get started with State Channels, we have created an introduction to State Channels in which you will learn how to open and close a State Channel, how to transfer tokens, and how to send generic messages.
In order to get started, you will need
An æternity node
The aepp-sdk-js with state channel support
We hope you are as excited as we are to explore the possibilities State Channels have to offer.
Gomoku: a Hands-on Example
Michal Powaga has created our first basic hands-on example Gomoku. Gomoku is a game that is as well known as Tic Tac Toe. In order to play the game, please make sure you:
Are running NodeJS (v8.0.0 or greater)
An æternity node
Create two æternity accounts
Have some ættos which you can receive for testing purposes
You can find all the information on how to do this through the Gomoku repository. Please feel free to clone or download the game from GitHub.
Since we are always on the lookout for good use cases, we have created a dedicated topic in the Forum where you can contribute your ideas and suggestions of implementations and use cases for State Channels. We would love to hear from you!