Announcing yeeth

Ethereum 2.0 in Swift & BeaconChain.swift updates

Dean Eigenmann
Jan 24, 2019 · 2 min read
Image for post
Image for post

Last week, I decided to start implementing an Ethereum 2.0 beacon chain for fun. This quickly transitioned into making plans for building a fully fledged Ethereum 2.0 client in swift.

Yeeth: Yeezy Ethereum, pronounced: how Mike Tyson says “yes”

Soon after deciding on working on this implementation, Eric Tu joined me in building it. We’ve made some good progress since the beginning. Here are our updates:

BeaconChain.Swift

The first thing we are working on is the beacon chain implementation itself. Since beginning, we made significant progress and the specification has been fully implemented. The implementation is currently one-to-one to the specification, so the code does not yet follow best design practices. Danny Ryan, one of the researchers working on Ethereum 2.0, is currently verifying the implementation.

Next Steps

Our next steps for the beacon chain consist of creating a simulator so one can actually run the beacon chain. We also need to work on BLS signature verification. For this, we have planned on importing a C++ library (never roll your own crypto). Finally, we will be refactoring the code to clean it up and create enough modular components to allow for easier unit testing.

If progress allows, we hope to be able to join the planned launch of the beacon chain testnet. This will require a lot more hours of work though.

Check out the repository here.

SimpleSerialize.swift

Eric Tu is currently working on this repository. It contains an implementation of Simple Serialize, the current selected serialization method for Ethereum 2.0.

Check out the repository here.

KSG.swift

Kids see GHOSTs

In KSG, we will be working on multiple implementations of GHOST used as the fork choice rule in Ethereum. It currently contains one implementation, which is a swift port of Vitalik’s python implementation. The implementation already works, but there is a minor bug that needs fixing.

Image for post
Image for post

Check out the repository here.

BLS.swift

This repository will contain a swift wrapper for a BLS12–381 Signature Aggregation implementation in C++. We’ve decided that we will be using the same BLS implementation as Prysmatic Labs. You can check out the implementation here.

Check out the repository here.

Keep up with our code on github, and check out our website.

yeeth

Yeezy Ethereum, pronounced: how Mike Tyson says “yes”

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store