Building Chachacha: Rococo’s wilder Cousin

Miguel Hervas
Centrifuge
Published in
2 min readFeb 25, 2021

Chachacha is a Rococo based relay chain testnet configured and supported by Centrifuge

Centrifuge is excited to contribute this testing environment for Polkadot’s parachain ecosystem! We started building Chachacha to prepare Centrifuge Chain for Rococo, Polkadot’s Parachain testnet but have since heard feedback from several teams that this would be a useful tool to prepare for Rococo.

We hope that teams waiting to on-board onto Rococo will find Chachacha helpful to ease this process, and that teams which have already gone live on Rococo can use Chachacha as a support network to test future updates.

Purpose

The main purpose of Chachacha is to serve as a support network to ease and speed up the on-boarding of new parachains in Rococo.

It helps:

  • To get the parachains in the waiting list to a state that is ready to be added to Rococo for further performance and stability testing
  • Parachains to find issues beforehand, by integrating earlier.

Main Characteristics

  • Chachacha will be at par with the latest Rococo polkadot/cumulus/substrate version
  • The network will be refreshed and restarted frequently
  • Inclusion process is analogous to Rococo’s
  • Notifications and Support will be given in the Chachacha Element channel

How to include your parachain in Chachacha

Maintain at least two validators (full block authoring node) for Chachacha:

Treat this like a production grade Polkadot node — see Run a Validator (Polkadot)

Node Setup — use one of the options below

  1. Chachacha Bootnodes
/ip4/34.89.248.129/tcp/30333/p2p/12D3KooWD8CAZBgpeZiSVVbaj8mijR6mfgUsHNAmCKwsRoRnFod4/ip4/35.242.217.240/tcp/30333/p2p/12D3KooWBthdCz4JshkMb4GxJXVwrHPv9GpWAgfh2hAdkyXQDKyN

2. Build from source:

git clone https://github.com/centrifuge/polkadotcd polkadotgit checkout chachachacargo build --release ./target/release/polkadot --validator --chain rococo --name <your_chachacha_validator_name> 

3. Use Docker:

docker run -d centrifugeio/polkadot:chachacha --validator --chain rococo --name <your_chachacha_validator_name>

Check your node on the Chachacha Telemetry

Generate your Chachacha ValidatorId Addresses

Follow Chachacha announcements for Chachacha validator updates, which can require one of the following scenarios:

  1. Update client
  2. Update client and purge-chain

Maintain at least one collator (full block authoring node) for your team’s parachain.

cd <root_cumulus_based_parachain_code>cargo build --release./target/release/<parachain_collator_name> --version./target/release/<parachain_collator_name> export-genesis-state --
parachain-id <your_registered_parachain_id> > genesis-state
./target/release/<parachain_collator_name> export-genesis-wasm > genesis-wasmwget -O rococo-chachacha.json https://raw.githubusercontent.com/centrifuge/polkadot/f9ed42d49ee825784ba8d55a82fc2742b88766af/node/service/res/rococo-chachacha.json./target/release/<parachain_collator_name> --collator --parachain-id <your_registered_parachain_id> -- --execution wasm --chain rococo-chachacha.json
  1. Reach in the matrix channel and provide validator keys above generated.
  2. After receiving CHA’s to one of the ValidatorId Addresses initiate the Submitting the setKeys Transaction by executing `session->set_keys` in Chachacha Extrinsics for each validator with its correspondent output of the rotate keys call
  3. Follow the registration process
  4. You are free to do runtime upgrades after the parachain is connected, so you can still iterate on features later on

Until we update PolkadotJs types, please use the following ones:

{
"AccountInfo": "AccountInfoWithProviders",
"Address": "MultiAddress",
"FullIdentification": "()",
"LookupSource": "MultiAddress",
"Keys": "SessionKeys6"
}

Technical Questions? Head to our Element.

For more, jump on our Forum, join our newsletter, or join our telegram.

--

--