Start Your CKB Development Journey | Digest #4
In the past month, Cryptape and MIT Bitcoin Expo both hosted CKB hackathons that provided developers with an opportunity to explore the CKB blockchain platform. Attendees were able to learn about CKB's unique Cell Model and its capabilities for creating complex smart contracts. The hackathon allowed participants to showcase the platform's features and interoperability with other blockchain technologies through various challenges.
How to set up a basic development environment for CKB?
When it comes to setting up the basic development environment for CKB, developers have two options: setting up the development chain locally or using the testnet of public nodes directly. For early-stage development, building the development chain locally is the more recommended approach. This is because it allows for greater control over the interval between blocks and enables pre-allocation of funds without the need to wait for a faucet to collect them, as is necessary when using the testnet.
1. Public Nodes
2. Set up a development chain locally
Download the Latest CKB Binary
Download the latest CKB binary file from the CKB releases page on GitHub.
Use the following commands to verify that the binaries are working and to check their versions:
ckb --version ckb-cli --version
Initialize the Configuration To initialize the development blockchain and generate the necessary configuration files, use the following command:
# <TARGET> indicates a local directory ckb init --chain dev -C <TARGET>
WARN: mining feature is disabled because of lacking the block assembler config options Initialized CKB directory in <TARGET> create specs/dev.toml create ckb.toml create ckb-miner.toml create default.db-options Genesis Hash: 0xfb4751c16b865d8b59bb6da46141abe8bb286a4b0e3cc1e52b4b1195884f4160
Configure the Block Assembler
The Block Assembler configuration specifies which address should be receive block rewards for mining.
Create a New Account
An address to receive the block rewards must be created. We can do this using
ckb-cli. Note: Be sure to record the
lock_argvalue in the response which we will use in the next step.
address: mainnet: ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqg8hc4r5a54a92jj7tdmh0zvumwurazrecr6taxa testnet: ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqg8hc4r5a54a92jj7tdmh0zvumwurazrecdgqjv9 address(deprecated): mainnet: ckb1qyqq00328fmft62499ukmhw7yeekac86y8ns3kysl4 testnet: ckt1qyqq00328fmft62499ukmhw7yeekac86y8nsvn60nf lock_arg: 0x07be2a3a7695e95529796dddde26736ee0fa21e7 lock_hash: 0xcb52ab34a5348ebdd95e6da58573ea8e80369b89d9a6b6cf16505616c0a7c0e9
[block_assembler] code_hash = "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8" # Do not change this. args = "0x07be2a3a7695e95529796dddde26736ee0fa21e7" # Change this to your lock_arg value. hash_type = "type" # Do not change this. message = "0x" # Change this to "0x" to supply an empty message.
Adjust the Parameters to Shorten the Block Interval
For most development purposes, the default configuration should be sufficient. However, sometimes it is beneficial to speed up specific operations to quickly view results.
Change the Number of Blocks in an Epoch
The default epoch length is
1000blocks. Reducing this to
100can help with testing Nervos DAO operations. Modify the
genesis_epoch_lengthparameter in the
<TARGET>/specs/dev.tomlfile under the
[params] genesis_epoch_length = 1000 # The unit of meansurement is "block".
Change the Mining Interval
The default mining interval is
5000, which is a value in milliseconds, meaning 5 seconds. Reducing this value will create blocks faster. Modify the
valueparameter in the
<TARGET>/ckb-miner.tomlfile under the
[[miner.workers]] worker_type = "Dummy" delay_type = "Constant" value = 5000 #milliseconds
Start the CKB Node
ckb run -C <TARGET> --indexer
Start the CKB Miner
ckb miner -C <TARGET>
Your Burning Questions Answered
What are the three different types of CKB nodes and what are their respective roles in the network?
CKB nodes have three types:
Mining Nodes: They participate in the CKB Proof-of-Work consensus process. Mining nodes collect new transactions, package them into blocks and produce new blocks.
Full Nodes: They verify new blocks and transactions, relay blocks and transactions, and select the chains they consent to fork. They are the verifiers of the network.
Light Nodes: They trust full nodes. With minimal resources, they subscribe and store a subset of cells of their interests.
Where can you receive testnet CKB for development and testing purposes?
The facucet: https://faucet.nervos.org/
Gridless is a project that brings affordable energy to rural communities in Africa using microgrids and Bitcoin mining. It aims to make microgrids financially sustainable and push for more electrification in Africa while promoting Bitcoin mining decentralization. CoinDesk named it as one of its Projects to Watch for 2023.
The rise of digital tools does not necessarily lead to fewer and less meaningful connections. Digital-first connections might actually be just what our physical lives have been missing. Existing ways of networking have mostly sucked, and digital tools are better at the parts of connecting that have always been the hardest. However, for digital-first networking to dramatically improve our lives, it has to get a lot better at facilitating connection and connection-strengthening. Areas worth exploring include group chats, open graphs, and tools for the digital-to-physical moment.
The author argues that Web3 and AI are compatible with each other, and that Web3's permissionlessly programmable nature allows AI to flourish. They believe that AI will dominate the edges of Web3 networks, where humans currently operate, and that this will enable novel consumer experiences in various applications such as social media and gaming. The interactions between AI agents and humans, as well as between AI agents themselves, will occur through smart contracts.
Network & Code
We are thrilled to announce the exciting projects that came out of our recent Hackathon! Participants created innovative and diverse applications that showcased the potential of the CKB blockchain platform. Check them out on the Project List!
💪 Let's keep building! Stay tuned for more updates and future events!
Top 3 Projects
Link to project repository
A team called CKBGPT was created by tianlitao.
Team Mentor: Yukun
2. CKB Academy
CKB Academy is committed to ensuring that new CKB developers have an easy learning curve, by providing easy-to-understand, interactive courses and friendly documentation. Our mission is to foster a robust ecosystem around Nervos Network by providing developers with all the tools and resources they need to create innovative applications and solutions.
Link to project repository
A team consisting of Jason Huang.
Team Mentor: Flouse
3. Nervos Doc Search
Create a customized search engine and Telegram Bot accompaniment to streamline access to information. The search engine is a customized Google engine indexing a list of known resources. New resources can easily be suggested and implemented. Accompanying Telegram Bot contains several commands from its '/' menu which provide links to useful data on GitHub using the GitHub REST API, which will update with the repositories. Bot contains RFCs lookup and system/production/miscellaneous script repositories indexing and linking, as well as a general References lookup containing other handpicked repositories. The search engine is on a free hosted website https://nervosdocs.weebly.com/. The Telegram Bot's handle is @NervosDocBot. All its commands are in line with the user and will always post its responses in private messages rather than in channel. It runs on an ESP32 micro controller, which allows it to queue and process requests individually.
Link to project repository
A team called Toastman was created by Phill.
Team Mentor: Drift Luo