Introducing Gingerbread!

Today we’d like to introduce a new open source project aiming to service bakers within the Tezos ecosystem. As a recipient of one of the Tezos Foundation’s recent grants, Zednode, a blockchain infrastructure company, has been able to dedicate time and resources to focus on improving the baking experience for smaller bakers.

Baking, if you aren’t familiar with the Tezos ecosystem, is the term used describe how new blocks are added to the Tezos blockchain. Naturally, the folks who participate in baking are called bakers.

Thanks to our friends at Tezos UK for this infographic!

As a relatively small baker ourselves, we struggled a bit to get our baking operation up and running. In addition to the technical complexity of actually operating the baker software, and managing a community, there were a lot of outstanding questions. How do we run a Tezos node? What about just trusting a public node? How much do we owe to our delegators? What’s the easiest way to do payouts?

With Gingerbread, we’re developing an open source dashboard application that makes it easier for bakers to track rewards and payout their delegators. Additionally, we decided we wanted an application that is very simple, does not require a lot of dependencies, and is easy/basically free to deploy.

Gingerbread Dashboard

If you’re curious, you can view all the source code for the project at https://github.com/teamzednode/gingerbread. Additionally, we’ve deployed a test app with our own configuration parameters over at: https://gingerbread.zednode.com/. The application is a simple JavaScript based app that uses a Tezos node + some cached data in a JSON file. Head over to the github page and have a look at the Readme for instructions to get started.

“How much does a certain delegator get based on their delegated balance for a specific cycle?” is a common question that a baker must ask — and it’s not that simple. First you need to figure out the specific snapshot block 7 cycles ago and grab the balance info from there. Secondly, you need to sum up all the rewards from both baking and endorsing for the entire cycle and figure out out to divvy up the rewards. We’re hoping to make these calculations + batch payouts easier with Gingerbread. For anyone interested, you can dig into the specific details of how we do our calculations here: https://github.com/teamzednode/gingerbread/blob/master/rpc_documentation.md.

Future/Unbaked Cycles

The simplest way to estimate baking rewards for a future cycle is to obtain the baking rights for the cycle, see how many blocks with priority 0 have been assigned to the delegate, and then add 16 TZ for every block. To estimate the endorsement rewards, similarly, we retrieve all the blocks where endorsing rights have been assigned to the delegate and add 2 TZ for each slot per block.

Baked Cycles

For cycles that are already baked, we can use the above strategy, except we can look at the block metadata and check if the baker is in fact the delegate that was assigned priority 0 or not.

Setting up a baking operation

Getting a baking operation started should be easy, and we’re hoping that as the minimum bond amount (currently 10k $XTZ) decreases and more tools are available, we’ll see more solo and small baker operations pop up. It’s essential that anyone in the Tezos ecosystem that wants to participate in staking/governance is able to, and that we’re not forced to delegate to larger bakers. Currently, if you have the minimum bond requirement, all you need to start a bakery is:

  1. A tezos node
  2. baking software
  3. software to handle administration + batch payouts to delegators

For #1 & #2, the folks over at Obsidian Systems maintain Kiln, which now has support for running a baker.

We’re aiming to solve #3. Please head over to our README if you’re interested in getting started. We’re available for questions, just shoot an email over at info@zednode.com.

Stay tuned for a follow up blog post, where we’ll dive into configuring, deploying the app, and issuing batch payouts.