Anthony De Meulemeester (known as @anthdm on the NEO Discord) is the creator and project maintainer of neo-go, one of City of Zion’s (CoZ) core projects. Neo-go aims to be a full working port of NEO in Golang, including a light node, consensus node, virtual machine and compiler. Anthony also won the City of Zion consensus bounty for providing an asynchronous consensus algorithm called HoneyBadger BFT.
Anthony is based in Belgium and has a background in large scale distributed systems programming. He began his career as a developer when he was 16 years old, coding websites for Counter-Strike clans. In 2008 he graduated from Ghent University with a masters in computer science, and went on to work for an eco-delivery start-up called BubblePost, where he was the lead engineer on the company’s bespoke traffic management system.
As BubblePost began to expand internationally, Anthony felt the start-up atmosphere diminish and went looking for other opportunities. For a time he found himself at an international company called Be-Mobile, developing distributed micro-services in Golang to power many of the traffic signs in Europe, and also took some freelance jobs upgrading legacy code bases in C and C++ for various industry giants.
Anthony now works at a company called AcademicLabs, which is a next generation research and matchmaking platform. The company was facing issues scaling its data engine and saw a blockchain powered Mechanical Turk as a potential solution.
This led Anthony to look into smart contract platforms, investigating both NEO and Ethereum. Eventually, AcademicLabs determined NEO would be the best fit for their product:
“Our customers are industry giants, so they can be a bit sceptical about blockchain technology. Outsiders only remember the bad stuff, right? And Ethereum is very well known for its low quality projects, because its so easy and cheap to launch on it. Of course, the finality NEO brings on transactions (+-20 seconds) is also really nice to have. We believe that paying a fair amount of money for the ability to create a new asset solves this issue of low quality projects polluting the namespace of a blockchain, which will create more trust for our clients.”
Joining City of Zion: neo-go
However, it was not the AcademicLabs project that brought Anthony into the fold at City of Zion.
“For me, it went like this,” Anthony recalls. “I was a bit bored in the evenings and weekends. I love to work on open-source pet projects and I noticed NEO had no Golang port, so I started to create one. Three weeks later I showed my draft to CoZ and they invited me in. I had a minimum working light node at that time.”
This was the beginning of the neo-go project. In fact, Anthony was not even aware that City of Zion existed until after he had already completed the work:
“I found out about City of Zion when I was searching for documentation on some networking protocols. I just wanted my repo on their GitHub for more attention. I didn’t even know CoZ was rewarding people – Of course the rewards are a nice thing to have.”
City of Zion have a strong preference of seeing work done upfront, which allows them to gauge both the quality and motivation of contributors. Anthony’s initiative in kickstarting neo-go of his own accord resonated strongly with City of Zion core values.
The neo-go project now features a light node, a virtual machine and a compiler that are all working and useable. Golang is a development language that was created and released by Google in 2009. As Google has an enormous code base with thousands of developers working on it, Golang was designed with a neat and clean syntax that would be simple for other developers understand. It was also created in such a way that changing one segment of code should have minimal effects on other segments of code. Anthony believes that leveraging these qualities could help grow the NEO project:
“Golang is getting mainstream for this kind of work. And I think the NEO project could grow a lot if people from the community are able to come in and easily contribute through pull requests. Golang is very minimalistic, easy to read and is designed for large scale teams to work on together. Take Docker, Kubernetes, Consul, etcd, Hyperledger and last but not least GETH (ETH node) for example, these are all written in Go.”
The neo-go project has a small handful of contributors, however anyone is welcome to join the effort.
“Blockchain is a space where a lot of people are lacking expertise beyond creating smart contracts,” Anthony notes. “It’s not easy to find good engineers to work on core blockchain technology. I think motivation and consistency are the major qualities I’m looking for in contributors. I don’t mind getting people up to speed in this space.”
Anthony did make a point of singling out the contributions of one developer in particular, “Big shoutout to Steven Jack. He has done some great work on neo-go so far.”
City of Zion Consensus Bounty: HoneyBadger BFT
In early May, City of Zion announced a new bounty program that called for developers to explore improvements to the delegated Byzantine Fault Tolerance (dBFT) protocol used on the NEO network. CoZ were looking for developers to: “develop documented, performant, and well tested code that can be leveraged by NEO nodes in the future to make the network faster. Specifically, this bounty is interested in code implementing an alternative protocol such as HoneyBadgerBFT, BFTRaft, or FastBFT and exploring its performance characteristics.”
The bounty program is part of a wider effort by City of Zion to develop, test and benchmark ideas and enhancements in NEO, and help it achieve its goal of being the number one blockchain by 2020.
On June 14th, Anthony was announced as the winner of the bounty program for his HoneyBadger BFT submission, receiving $50,000 in NEO / GAS. Ethan Fast, co-founder of City of Zion said in the announcement on Reddit: “Anthony’s submission was able to consistently demonstrate 2000 TPS under conservative simulation assumptions and could easily be tweaked to enable much greater performance (10,000 TPS with greater concurrency). In addition to the good performance, Anthony wrote some amazingly well documented and modular code that might quickly be ported over to form NEO’s consensus layer in the future.”
One of the advantages HoneyBadger BFT has on NEO’s dBFT consensus is that it guarantees liveness of the network even when nodes are behaving faulty. All good nodes output the same set of transactions in each epoch, meaning the network can keep committing transactions instead of wasting time and bandwidth on electing new leaders. The asynchronous nature of the algorithm could also potentially increase the throughput. More information on how Anthony’s HoneyBadger BFT implementation works can be found here.
Anthony has now been working with City of Zion for around six months, and is enjoying life as a member of the open-source development group:
“I’ve never met such a skilled and dedicated community in my whole life. We all work from different continents and are able to align on things so smoothly. There is always someone you can talk to, for chit-chat or for serious questions and advice, and when we meet in real life it’s a whole lot of fun. Rewards are very complimentary with the work done.”
As far as developers who are interested in joining City of Zion, Anthony had the following advice:
“Go the the CoZ GitHub page, pick a project you like and start contributing, or start a project yourself and show it to the Council. Also, don’t forget to join the Discord channel.”
Anthony can be found on the NEO Discord as @anthdm#4667, and the neo-go GitHub can be found here.
Anyone who is interested in joining the City of Zion development community should join the NEO Discord and visit the development channels.
More information on City of Zion can be found at the below links.
About The Author: Dean Jeffs
Dean is a digital project manager who has worked extensively with start ups and agencies in the marketing space. Fascinated by the potential applications of blockchain technology, Dean has a passion for realising the new smart economy.
More posts by Dean Jeffs