GM or GN to you, wherever you may be.
Ladies, gentlemen, and anons: another quarter has begun and enough residual guilt has built up within me that it is time to update you all for the third time. Today, I’ve got some good news, some bad news, and some news which is neither good nor bad, just simply news.
These last couple of months have been exciting and frustrating in equal parts. In concrete terms, the Chainflip team is as powerful as it has ever been. Our team has not only grown but it has also upskilled. I am increasingly impressed by the way in which the team have become domain experts over their own aspects of the project. When any one of our people goes on a well-earned holiday break, it becomes increasingly clear that each team member is a critical cog in the Chainflip machine. The team is left eagerly awaiting that human's return from their deck chair on the Amalfi coast.
Jobs! New Jobs for the Economy!
What that shows is that everyone is pulling their weight in a huge way. In my opinion, it also means that we have room to grow. While we are definitely looking at a case of diminishing returns, not just anyone will be able to make a contribution amongst a room full of learned and capable individuals, but we know that Chainflip is an extremely challenging project with endless opportunities for protocol testing and optimisation, let alone new feature development.
Now that we have had a full year to learn and to grow together, we feel capable of adding new people to our team and giving them space to catch up to the rest of our team and add to the long term capacity of the crew. Currently, we have 5 roles we are seeking additional support in. if you think you’re up to the task of being a Typescript Monk, Rust Wizard, Solidity Nerd, Quant Trader, DevOps Demigod, or could join our Communications team to expand our engagement, reach, and ultimately user base and volume, read more here: https://blog.chainflip.io/join-us/
The Sugarcoated Bad News
What we’ve realised though is that we have a lot of tidying up to do. Sandstorm is the basis of our entire stack. It covers all of our major cross-chain functionality. We simply can not afford to be complacent and release something quick and dirty. To give you an idea of how much has to go into this first release, and why it’s taken us so long to get to this point, let me tell you about all of the hairy stuff Sandstorm covers:
- State chain consensus and finality
- P2P Networking across the entire protocol process including signing and making sure that it can scale (we will likely be moving away from libp2p which has become a bottleneck)
- Reliable Schnorr key generation ceremonies with 150 participants
- Reliable Schnorr key signing ceremonies with 150 participants
- Ethereum transaction witnessing with 150 participants
- Ethereum smart contract interactions including reliable Schnorr key actions
- Ethereum gas fee calculations and reliable gas tracking with a sensible refund/failover system
- Smart contract stake manager vault rotations
- Automated Governance actions including auctions, epoch rotations, slashing, and rewards, maybe also solvency checks
- Backup validators
- Reward distribution, including cross-chain withdrawal certificates and other complex logic to handle the adjustment to balances including weighted and benchmarked state chain transaction fees
- Staking, unlocking, and claiming via valid withdrawal certificates generated by a selected set of 100 of the 150 validators through an aggregate Schnorr signature with smart contract interactions
- Runtime upgrades and support for secondary client network upgrades in the CFE and external chain clients
- Integration testing, unit testing, internal audits, a public testnet, and public audits of both the rust code and the associated smart contracts
- Monitoring and alerting software for validators and all other deployed infrastructure
There are a lot of really hairy and difficult things on that list, and perhaps the most time-consuming aspect of all of that is actually stitching it all together. You never really know how it’s all going to work, or even if each component will function correctly until it is patched together in a labour intensive, time-consuming, back-breaking, sweat-inducing mess of a process. This has been the challenge we knew we’d be up against for a year now. For comparison, the rest of the development includes:
- Write some logic for the vaults
- Extend the quoter logic and API interface
- Adjust some keygen parameters to support new blockchains
- Throw some new client connections in
- Slap in some AMM logic
- Whip up some batching rules
- Pray that this list doesn’t get longer
- Give it a good kick and if nothing falls off, she’s good to go
In other words, all of the really hard work is happening right now. Lots of grinding. Heaps of refactoring. Many meetings. Lots of issues on GitHub. A bit of tension now and then. Known unknowns reminding us that they are there. Once it’s done, we have a framework to do the other stuff, hopefully much quicker than this stage has occurred.
The Good News
For weeks, Kyle had been tasked with putting all of these incredibly hairy pieces together. Every few days, a testnet launch attempt was made. Eagerly awaiting the successful execution of the first end-to-end staking vault rotation, a process which takes almost all of the required features listed above and does them all in a single process, the team in the Berlin office would crowd around a couple of the computers and wait for the result. The CI builds take about 10 minutes. Spinning up a new testnet with the new build would take about 5 minutes. Then, blocks would start to be produced. Kyle would then send a couple of transactions to commence the rotation, and we would wait and watch the logs. Some of us had absolutely no idea what we were looking at, but it was fun anyway. If even a single thing goes wrong during a launch attempt, the whole process stops. Problems are only discovered one at a time until the whole code path can be executed. Week after week, and attempt after attempt, a problem would stop the rotation, and we would leave the office mildly drunk at 7pm on a Friday (or Wednesday) night after watching yet another failed launch attempt.
Then one fateful Friday, another attempt was made with Tom and Kyle at the helm. With most of the team no longer interested in watching them fail to launch the testnet a second time that afternoon, the boys pushed the green button with few else watching. At almost exactly 5:00pm, cheap beer in hand, I happened to turn my head just at the right time to see the most beautiful thing on Kyle’s screen. A green box that said “Success” on Etherscan.
This little green tick proved unequivocally that our testnet works end-to-end. All of the pieces had finally fit together in a functional way. Behold: the sight of nerds experiencing joy.
The photo doesn’t quite capture the mood but Tom’s “YYUUUUSHHHH” sound that he made was pretty epic. The boys went home that day totally mentally fried. I didn’t hear from them all weekend, and I hope their scars heal. I still catch Kyle gently sobbing at his desk from time to time.
That was some weeks ago now. This end to end testing may have proved that we are going to be ok, but it also showed us a long list of things we needed to do to make the system more robust. Recently, we merged our implementation of the FROST multisig protocol, a slightly evolved Schnorr signing scheme from a paper in Dec 2020 that significantly improves the reliability of signing ceremonies to reduce the failure rate and thus decrease effective signing times. There is a laundry list of a dozen other improvements which are scheduled for merging in the next 6 weeks which should significantly improve the state of the testnet.
All of this is to say that although we can prove that we have produced something, we are not ready. This work is too important to screw up. Releasing the FLIP token right now and shipping a lacklustre Sandstorm without an audit is a mistake that we will not be making. I therefore can tell you with confidence that FLIP will not be launching by the end of 2021. However, we aren’t keeping you waiting more than required. In the meantime, we are putting together something quite exciting for both us, and hopefully for you too. You want some FLIP tokens? You can get some FLIP tokens. How? TESTNET.
The Real Good News
We would never ship Sandstorm without an audit, but we would ship the unaudited Sandstorm testnet to the public and pay our community in future FLIP tokens to have a go. Create a validator. Stake on the Ethereum Rinkeby network. Outbid your opponents. Participate in a rotation. Subject yourself to a live network update. Get slashed. Earn fake FLIP, and blow it all like a bad night at the casino. All of these could earn you some free (real) FLIP tokens and help you prepare yourself for the Chainflip validator experience. It’ll also help us improve our documentation, identify pre-launch issues, and will give team members experience running the network in a live public environment - something which we’ll need to have in order to drop Sandstorm like it’s hot.
Best of all, if you’re able to identify and report UX issues, bugs, and exploits, you’ll earn rewards proportional to the severity of the problem. This is not a substitute for penetration testing and pre-launch audits, but it can only help if issues are found at this stage.
More details will be released very shortly. This program will be the first time for a long while that general community members will have the opportunity to score themselves a bag of FLIP, and will be the last opportunity to do so before the LBP.
I can confirm that the launch date for the incentivised testnet program may definitely maybe possibly be the 15th of December. That’s what's written down on my shitty co-working space branded notebook on my desk, anyway.
This testnet will not be perfect. We want you to break it. We want you to make our software feel vulnerable and our infrastructure to tremble at its knees. We are planning some fun activities on the testnet to stress test it in a live environment. Stay active in the discord during the program and you’ll be well placed to collect some extra points by responding quickly to failures, flaws, and upgrades.
Sit tight for further details. They’re just around the corner.
In Other News, NFTs
As you may have spotted, Flippy was accepting good NFT heads on his guest list. Then over 10,000 accounts joined the discord and filled out our whitelist in less than 36 hours. We don't know if his PfP play is going to be successful, but according to the communications team, Tom, and other people close to the gang, these NFTs look slick, and into the future, Flippies will become the highest form of clout generating JPEGs ever to hit the Eth/Arweave chains. I look forward to acquiring a Flippy, which will actually be the first NFT that I have ever owned. Regrettably, I have never been able to justify the gas costs in my head. I guess I will now eat those words as I spend exorbitant amounts of ETH getting the Flippy I want. I could tell you what traits I’m going for, but that would be terribly stupid on my part.
I did not anticipate this chaos. We had to deploy an emergency CAPTCHA bot to the discord server, and we aren't too sure how effective that was, but what we can say is that we accidentally summoned a demon and filled our DeFi project's discord with NFT accounts at a ratio of at least 2:1. If you think you can help deal with this mess we have created, please message Hitch on Discord.
You may or may not need a Flippy to attend future Chainflip Online and Physical events. I would tell you to get on the whitelist but I'm afraid it’s too late. Let's see if they all get minted. If not, there will be a free for all. Stay tuned.
For what it’s worth, very little developer time has been harmed in the making of this collection. Although the thought of consuming precious Ethereum block space to claim ownership over various JPEGs makes me uneasy, seeing the production of Flippies between the excellent illustrators we hired for this project and the Chainflip Comms team gave me a good idea of how tricky making good collections can be. Hitch, DJ Crayola, and the Spati King are all terribly excited to get these things out there, and while we have no idea how successful this project will be, if nothing else it has been a great learning experience for the team. Hopefully, it will also become a huge clout machine too. I am personally hedging my clout position and am jumping on the bandwagon. I have seen the Flippy I want, now I just have to get lucky and mint the right one or find the individual who got it before me and persuade them to correct their ways.
On The Road
While all this is going on, I’m currently in Lisbon, Portugal for Liscon, another great Ethereum event week down here on the southwestern tip of the Iberian Peninsula. I’ll be coming back here in a couple of weeks to Breakpoint, a.k.a SolanaConf, to further develop relationships with existing and prospective FLIP stakeholders and future partners. If you happen to be in Lisbon at either of these times, let me know on Discord (I'm easy to find) and I’d be glad to meet you to talk shop. EthCC was a hugely valuable experience for Chainflip so I hope that these upcoming events will be further opportunities to advance the project in the eyes of market makers, funds, and other professional degenerates.
I’m being told off for writing walls of text again, so here’s a tweetable summary:
Testnet is coming. Sandstorm is delayed. Flippies are being minted. Chainflip is growing. I’ll be in Portugal.
Subscribe to the newsletter for further updates on the testnet program next week and future announcements on the launch of FLIP.