Chainflip Development Update — April 30th 2021

Chainflip Development Update — April 30th 2021

Dev Update Zwei is packed with delicious and healthy information. Reading it may cause your bones to strengthen and the hairs on your feet to grow longer.

Progress Since Last Update

Personnel

I mentioned in the last update that we were looking to close two more Rust engineers. We managed to close one, but we’re still on the hunt for a senior engi who has some solid production experience with Rust in order to strengthen our practices. We still have a few great candidates in the pipeline and I’m confident that in the next update we’ll have secured this position.

We also have a senior fullstack engineer (previously REN Protocol) starting with us this week, which will bolster the web team.

Research

More research this fortnight, specifically into the signature generation process for our wallets. Broadly we need a communications network between all the validators. Since this already exists within Substrate we’ve built a quick proof-of-concept on top of their underlying code and are happy with the approach. We’re also spending time getting to grips with Schnorr signature generation (which will leverage this comms network). It’s imperative we understand signature generation well, as leaking any unnecessary data could compromise the security of our vaults.

Documentation

Though there’s still a lot of work to do to get there, we’ve started to put together documentation for running a Validator node on Gitbook. The validator experience is very important to us, so ensuring that there are clear and concise instructions is a must.

Development

State Chain

State Chain extrinsics are coming along well. There is still a lot to do here but we’ve merged initial work for Validator rotations (auctions) as well as staking (which includes a rudimentary implementation of witnessing).

Chainflip Engine

The CFE is the off-chain component of the Validator software. It’s responsible for watching the State Chain and reacting to events which occur there in order to execute crucial tasks like witnessing and signing.

In the last fortnight we’ve laid the foundations for this component, including mocking out the internal comms method between all the different modules (a generic message bus), and beginning the implementation of the signing and witnessing components for Ethereum.

Staking Web App

We’ve put together initial wireframes for the staking portal, which will be getting love from a designer in the coming weeks.

Some progress has been made on the plumbing for the portal, though most of last iteration’s time was spent on the new website. We’re reasonably happy with the new site given that it only took 30 minutes to design. Fear not, as we have a fulltime designer who is joining us on the 10th to give our websites the love they deserve.

Infrastructure

Plenty of behind-the-curtain work done on our internal infrastructure recently. CI is running smoothly and we’ve solidified the plans for rolling out Validator software and hardening our in-house infra. Can’t give away too many more details there. OPSEC. 😊

Ethereum

We chose to push the treasury implementation to the side for now whilst we work on some of the more critical aspects of the Smart Contracts, including replay protection for signatures, and gas profiling a couple of token standards (ERC777 vs ERC20).

Goals for the Next Fortnight

Some quick bullet points about what we hope to achieve by the time the next dev update rolls around. This time I’ve tagged them with the relevant component for easier parsing.

Development Goals

  • [SC] Merge in our p2p comms layer
  • [SC] Finalise unstaking / claiming extrinsics
  • [SC] Flesh out vaildator_status ideas (proof that validators are up to date with relevant chains)
  • [ETH] Replay protection for ETH signatures
  • [ETH] Decision on token standard
  • [CFE] Merge in State Chain observer
  • [CFE] Schnorr signature implementation for generating ETH keys
  • [APP] Initial web app build (implementation of wireframes without live data)

Other Goals

  • Securing one more senior Rust engineer
  • Securing a full time designer
  • Secure timeslot for a Smart Contract audit
  • Detailed internal discussions about our approach to slashing

General Thoughts

Wowzers, a big one this week. Let us know if this information dump is useful / interesting to you. Whilst we want the community to be engaged it’s also a not-insignificant task to put these updates together. Maybe it makes sense to do them monthly instead.

I’ve also been spending time locating the elephants in the room. Those sneaky tasks that you have to complete but evade your thinking for a long time; tasks like audits, deployments, bug bounties, etc. Hopefully dedicating time to tracking these boogeymen down will give us a more robust estimate for our timeline.

Until next time. — Tom