YOLO: An ephemeral test network for Ethereum
For the first time, an official ephemeral test network YOLO (You Only Live Once) has been created specifically to test available frameworks of the Ethereum blockchain. As the name suggests, this testnet is not meant to exist in the long-term and will be nuked. It is not a replacement to existing testnets for Ethereum 1.0 chain.
The requirement of an ephemeral testnet surfaced during the discussion of testing BLS curve signature EIP in the Ethereum All Core Developers meeting 87. The Meta EIP-2657 for Ephemeral Testnet YOLO created by the hardfork coordinator James Hancock has a clear mention of the purpose and application. The disclaimer in the EIP reads:
“This is for testing basic infrastructure. It will be nuked. It is not for deploying dapps, nor does it define what will go into mainnet. For information on network upgrades, please follow the relevant meta EIPs and ongoing discussion on ethereum/pm.”
Launch of YOLO v-1
YOLO was initially conceived for testing of EIP 2537: Precompile for BLS12–381 curve operations but on the suggestion of Péter Szilágyi (Geth), the Ethereum core developers agreed to consider more EIPs to spin up the testnet.
The first version of the temporary test network includes the latest spec for:
YOLO can be joined via Geth with the — yolov1 flag.
Network Identity: Yolov-1
Consensus protocol: Clique — proof-of-authority
(It is important to note that this is not a testnet deployment for the Berlin upgrade, and EIPs tested here may or may not be going live with the next hardfork.)
YOLOv1 with a new IP address
Yolov1 sealer/bootnode is started again on June 22, at a new IP address. Not very far from the re-activation of the YOLO boot node, a crasher on Yolo with Besu and in OpenEthereum are identified. Also, Nethermind could not sync with YOLO. Quick debugging pointed to an error (in Geth) that could have lead to a direct DoS attack. With incredible teamwork, the issue was resolved in no time. While clients are working on joining YOLO testnet, stats of the current network is available at https://stats.yolonet.xyz/.
Chronology of YOLO test network
- June 22: yolov1 sealer/bootnode is up with a new IP
- June 12: Proposed EIPs for Yolo v2
- June 12, 2020: Restarted at AWS cloud
- June 11, 2020: YOLO is back as YOLT (You only live twice)
- Jun 10: Open Ethereum and Besu joined the network.
- June 10: YOLO stopped. It went out of disk.
- June 03: Yolo v-1 deployed with Geth
- June 03: Finalized spec of EIPs for v1, commit hash added to YOLO meta EIP
- May 29: Final selection of EIPs, a decision on the state-test name as Yolo-v1 (and not Berlin)
- May 19: Meta EIP-2657 created for ephemeral testnet YOLO
- May 15: Proposal, decision and initial selection of EIPs to spin up an ephemeral testnet YOLO
Challenges faced with YOLO network
(Sequence of events as explained in Ethereum All core Devs meeting 89)
- After a few days of the launch of the YOLO test network, the whole thing blew up because it went out of disk. Geth team did fix that, since then however something quirky was observed.
- The interesting thing that happened was that the signer went off.
- The signer is creating blocks and not even Geth is accepting the blocks created by the Geth signer.
- The state of the signer was saved for debugging and then nuked. Post-re-starting, it was resynced and the signer started signing again. After about six blocks, it blew up again and no other node in the network was accepted. It meant that the Geth signer does something that is not accepted by normal block processing.
- Three major clients — Geth, Open Ethereum, and Besu were successfully synced before the network stopped.
- Further digging up the issue suggested that the signer was not YOLO enabled. It was running on an old version of Geth. Geth team is working on sorting it out.
Frequently Asked Question
Are EIPs for the Berlin upgrade is being tested on Yolo testnet instead of Ropsten and Goreli?
Protocols finalized for Berlin will be testnet about 3–4 weeks prior to the Ethereum main network deployment on testnet(s). Testnet date for the Berlin upgrade is yet to be announced.
Will EIPs tested on YOLO get into Ethereum’s Berlin upgrade?
Why is YOLO not available to dapp developers?
YOLO is an ephemeral testnet, meaning it will be a short-lived test network. It certainly will be nuked and this is the reason it is not recommended for dapp developers. Moreover, it’s historic that people get upset when a testnet breaks and this is the primary reason to have a separate testnet in the first place. Its focused purpose is testing Client integration and EIPs.
Is there a timeline for other clients to join the YOLO testnet?
Geth, Open Ethereum, and Besu have already joined the Yolov-1 on June 10th and Nethermind is expected to join soon.
Where can I monitor YOLO’s status?
The status of Yolo v1 can be monitored at https://yolonet.xyz/
Where can I find technical details about YOLO?
Technical details are shared by the Geth team here.
YOLO1 testnet is up and running https://yolonet.xyz/
- Support is baked into Geth master branch via — yolov1
- Genesis config json is at https://yolonet.xyz/yolo.json
- EF bootnode at enode://email@example.com:30303
- enode://firstname.lastname@example.org:30303 (previous IP)
- There is one Geth signer only.
- Stats page secret is YOLOv1, with geth you can — ethstats=’yournode:YOLOv1@stats.yolonet.xyz’
- Faucet is unauthenticated, you can reach it from the dashboard
This is a collection of questions received from the community over the Reddit thread, and other places. The Ethereum Cat Herders are committed to sharing the latest in Ethereum development. If you have any questions related to YOLO testnet, Berlin upgrade or development update in general, feel free to reach Cat Herders at Gitter and Twitter.
(Extending thanks to James Hancock, Hudson Jameson, William Schwab, and the Ethereum Cat Herders for reviewing this article.)