Second application, cGomoku, is something we really want to highlight. It’s a fun game and demonstrates the most advanced off-chain smart contract capability brought by Celer Network. cGomoku is a simple board game with Gomoku (five-in-a-row) rule. You can invite friends to play the board game with you and have some ETH as bets 😛!

Sounds simple right? But the hard thing is to allow users play the game without the slightest feeling of the underlying steadfast but annoyingly slow blockchain consensus process.

It has been 2 years (😱) since the Ethereum community first hoped for this.

Today, Celer Network got this job done 😎! Users won’t feel they are using blockchain when playing this game. cGomoku showcases the smoothest ever interactive blockchain game experience built on top of Celer SDK. If you are interested in building, let’s say a popular chess game, then read on and join cPilot developer early access!

Celer SDK transparently handles real-time off-chain play as well as the hard problem of on-chain dispute in case of byzantine fault with the following key technology innovations:

Fully generalized off-chain smart contract logic. Celer SDK not only supports simple off-chain payments like existing solutions but also provides API and design framework to support generalized off-chain application state transitions. When someone places stones on the game board of cGomoku, each move is happening through off-chain logic execution. Don’t worry about the security and finality, because each step is secured by on-chain verifiable generalized state proof.

Celer SDK not only supports simple off-chain payments like existing solutions but also provides API and design framework to support generalized off-chain application state transitions. When someone places stones on the game board of cGomoku, each move is happening through off-chain logic execution. Don’t worry about the security and finality, because each step is secured by on-chain verifiable generalized state proof. Out-of-box conditional payment. Blockchain applications are often associated with value transfer, which is the case in Gomoku duel because the winner gets the loser’s stake. The interesting thing here is to ensure that no one can cheat: the loser has to pay . cChannel enables this semantic by supporting conditional payment. Before the game starts, each player can send conditional payments to its counterparty saying “I will pay you 0.01 ETH if you win”. Note that the payment logic and Gomoku logic are separate smart contract objects with state dependency, so that cGomoku can share the same payment channels with all other cApps.

Blockchain applications are often associated with value transfer, which is the case in Gomoku duel because the winner gets the loser’s stake. The interesting thing here is to ensure that no one can cheat: . cChannel enables this semantic by supporting conditional payment. Before the game starts, each player can send conditional payments to its counterparty saying “I will pay you 0.01 ETH if you win”. Note that the payment logic and Gomoku logic are separate smart contract objects with state dependency, so that cGomoku can share the same payment channels with all other cApps. One-time-setup, long-term-use channel. Connecting to the Celer Network is similar to connecting to the Internet. You can choose one or a few access points to open cChannels and these are the only on-chain operations you ever need to do until you run out of money or encounter special events such as malicious counterparty. Just like you can use the same Internet service providers to access all sorts of Internet applications, you can use the same cChannels to access all sorts of cApps concurrently. The following three features are essential to support this ease of use.

Connecting to the Celer Network is similar to connecting to the Internet. You can choose one or a few access points to open cChannels and these are the only on-chain operations you ever need to do until you run out of money or encounter special events such as malicious counterparty. Just like you can use the same Internet service providers to access all sorts of Internet applications, you can use the same cChannels to access all sorts of cApps concurrently. The following three features are essential to support this ease of use. Multi-hop trust-free state relay via Celer Nodes. In the Celer Network, each end user only needs to connect with one or a few access points. Not only simple payments but also more complex conditional state transitions need to be relayed in a multi-hop fashion. Celer Network’s SDK provides a simple API call for the application to conduct this kind of complex multi-hop conditional state relay without worrying about the interaction with the cChannel network.

In the Celer Network, each end user only needs to connect with one or a few access points. Not only simple payments but also more complex conditional state transitions need to be relayed in a multi-hop fashion. Celer Network’s SDK provides a simple API call for the application to conduct this kind of complex multi-hop conditional state relay without worrying about the interaction with the cChannel network. Modular state dispute resolution. Sometimes on-chain state settle cannot be avoided. For example, one of the cGomoku players may drop off-line. In that case, we want to minimize the “blast radius” of such on-chain settlement. You wouldn’t want to close all your channels just because of an offline Gomoku opponent. cChannel’s interface is designed so that each off-chain object is compartmentalized to do just that.

Sometimes on-chain state settle cannot be avoided. For example, one of the cGomoku players may drop off-line. In that case, we want to minimize the “blast radius” of such on-chain settlement. You wouldn’t want to close all your channels just because of an offline Gomoku opponent. cChannel’s interface is designed so that each off-chain object is compartmentalized to do just that. Pure Off-chain Object. Many people may believe that every off-chain application has to go through an on-chain initialization phase to set up an on-chain bond. This is an inaccurate mental model . The on-chain bond contract is only necessary for payment channel logic because the states of each payment channel (e.g., Alice deposits $X into the channel) should be verifiable by all nodes to prevent double spending, which is essentially preventing “state race conditions”. However, if we look at cGomoku, the game state is valid as long as all involving parties have signed the state, and no state race conditions can ever happen in this context. Therefore, no on-chain state or operation is ever needed for cGomoku until someone wants to dispute. We call this kind of objects Pure Off-chain Objects. But how can we properly reference a pure off-chain object if we want to dispute over this object later on the blockchain? Celer Network provides a way to construct a uniquely identifiable reference (Off-chain Address) for off-chain objects, only deploys objects on chain when necessary, and provides an Off-chain Address Translator (OAT) to establish the mapping from off-chain address to on-chain address.

Many people may believe that every off-chain application has to go through an on-chain initialization phase to set up an on-chain bond. This is an . The on-chain bond contract is only necessary for payment channel logic because the states of each payment channel (e.g., Alice deposits $X into the channel) should be verifiable by all nodes to prevent double spending, which is essentially preventing “state race conditions”. However, if we look at cGomoku, the game state is valid as long as all involving parties have signed the state, and no state race conditions can ever happen in this context. Therefore, for cGomoku until someone wants to dispute. We call this kind of objects Pure Off-chain Objects. But how can we properly reference a pure off-chain object if we want to dispute over this object later on the blockchain? Celer Network provides a way to construct a uniquely identifiable reference (Off-chain Address) for off-chain objects, only deploys objects on chain when necessary, and provides an Off-chain Address Translator (OAT) to establish the mapping from off-chain address to on-chain address. Mobile-native and Web SDK framework and runtime. Celer Network provides the first-ever mobile native off-chain application development framework under cOS specification. We also support web application through a local go client. Celer SDK lets developers concentrate on the application logic and create the best user experience, without hassling with complicated off-chain states exchange, tracking, or dispute. Whether you want to enable fast and secure transaction in an e-commerce app or add rich gamification features in a viral mobile game app, the user experience will be silky smooth, say goodbye to slow transactions and expensive transaction fees.

Follow Us

Can’t wait to try it? 😄 Get the app at here and join the cPilot developer early access program here.

To stay updated, follow us via:

Website: https://www.celer.network/

Telegram: https://t.me/celernetwork

Github: https://github.com/celer-network

Twitter: https://twitter.com/CelerNetwork