Today, we are excited to announce the launch of Celer Network’s layer-2 state channel mainnet upgrade, Lyra, on Ethereum. We are also thrilled to announce that we have open-sourced (including goCeler-oss, cChannel-eth and celer-light-client) this battle-tested state channel network’s full node code. The software is highly optimized and production-grade: it requires less than 10MB minimal memory and can support 1,000 clients on one t2.micro instance with 1CPU, 1G memory ($61 to run a whole year).
This marks the world’s first multi-hop-networked state channel open-source release. With this launch, Celer enters a new era by expanding its network, enabling global node operators and application developers to build a wide range of use cases.
What’s included in this release?
Since our alpha mainnet launch, we have been iterating the state channel’s core protocols and software implementation for high performance and robustness with invaluable learnings from CelerX, a real-world mobile gaming application with more than 100,000 users. Since August of 2019, the Celer Network node has processed 1,125,541 micropayment transactions with 0 downtime.
The open-source code release of Lyra state channel is production-grade software that is powering real-world applications. Implemented in Go, the software is meticulously designed with end-to-end principle and highly optimized for performance, reliability and modularity with :
- 10MB minimal memory requirement
- Protobuf off-chain data structure to ensure blockchain agnosicity
- Transactional state consistency and failure resistance
- Secure SSL authenticated peering and connection
- Pluggable Ethereum infrastructure endpoints
The released code, including cChannel-eth, goCeler-oss, and celer-light-client, support all features documented in the Celer State Channel Specification. Just to highlight a few:
- ETH and ERC20 Token Support
- Generalized conditional payment
- Multi-node networking and payment and state routing
- Generalized State exchange and validation framework
- Generalized State Channel dApp development framework
- Duplex channel with sliding-window concurrency
- Boolean and numerical conditional payment support
- Single-transaction channel opening
- Dynamic deposit and cooperative withdrawal
- Cooperative channel closing
- Batch multi-channel settlements
- Batch multi-payment liquidation
- 0-downtime upgradeable architecture
The resource requirement to run a Celer state channel full node is very low: the full node consumes only 10M memory to run and can automatically scale based on the number of client connections. A node running on t2.micro instance on AWS can support 1,000 concurrent connections from the clients. This means that a Celer node can run on devices ranging from large-scale exchange servers to smart TVs as well as in electrical cars and pretty much in any IoT devices. It’s extremely easy to spin up your own node on your laptop to give it a try, just follow the setup and test instructions.
What is the network growth plan?
With the code being newly open-sourced, the Celer team will take a conservative 3-phase approach to expand the node network for Celer Network.
Phase 0: open public review of code base, mainnet test runs and security bug bounties under precautious feature trimming
The current version of the code release has gone through internal security review and is undergoing two independent external audits. Previously we have completed external security audits on our state channel smart contract code.
In this phase, we focus on opening the software to the community and allow all interested parties to run through the basic process of setting up and configuring the node operations. We will also focus on detailing the document to operate the node and develop using the SDK during this phase.
To ensure this phase is launched smoothly, while taking precautionary measures, we temporarily disabled some features in phase 0:
- We removed the dynamic routing algorithm and only enabled a static routing algorithm in this version of the code.
- We removed some usability optimizations that allow client cross-syncs.
- We put restrictions on some system parameters like total amount of channel deposit
- We removed Go client API, associated tests and node operation tools.
We would like to stress that this is in no way hiding any “secret features,” but we’re merely exercising precaution to ensure a smooth and secure process.
Phase 1: onboard selected partners with full-feature to ensure smoothness of operation and onboarding experience
After phase 0 along with external security audit, we will choose partners like cryptocurrency wallet providers, dApp partners and tech enthusiasts to bootstrap a core network with the full-feature nodes. In the meantime, we will lift all Phase 0 restrictions and reinsert trimmed features to allow early community nodes to onboard. In this phase, our focus will be on describing and documenting some of the best use cases of using Celer Network state channel node for dApps.
Phase 2: all-out public expansion
After Phase 1, we will switch to all-out full-scale launch with online hackathons and community events to boost the awareness of running Celer’s full node and aim to build up the network effect and continuously evolve the code base with the community and explore more use cases.
In terms of timeline, we expect Phase 0 to take 1.5 month and Phase 1 to take 1 to 2 months depending on our partners availability before we move into Phase 2 for a fully open ecosystem.
What to expect in the next couple of weeks?
Today marks the start of our Phase 0 growth plan and within the next following weeks, here’s what to expect:
- Documentation: we will start to release more documentation about the operation and API of the state channel node.
- Security bug bounty: we will launch security bounty programs to incentivize public review of this new batch of open source code.
- Community mainnet bootstrap events: we will launch community mainnet bootstrap events to encourage and engage the community to run the state channel node software.
Where to ask questions?
Both github issues and Discord chat rooms are great places to ask us technical questions. You can also find us in different channels as follows:
- Github: https://github.com/celer-network
- Discord: https://discord.gg/Trhab5w
- Twitter: https://twitter.com/CelerNetwork
- Medium: https://medium.com/celer-network
- Telegram: https://t.me/celernetwork
We look forward to an exciting growth ahead.