A honest post mortem 👨‍🌾

mastermice
4 min readJan 8, 2022

Dear farmers,

Yesterday was an exciting day, which had it’s internal up’s and down’s, never a boring day in the Honest Farmer Club!

After the dev AMA in our discord server, the team has been working non-stop to come up to the high standards we want to give our community. Together with you, we decided that we would move from a one-off reveal (once all 3000 farmers are minted) to the concept of weekly/time based partial reveals.

Late night smart contract action at the Honest Farmer Club đź’»

A quick introduction to smart contracts

When developing software in the traditional (web2) world, most mistakes are easily forgotten. You identify the bug (a problem in your code logic), push a new release, and most users will never even notice that something went wrong. This happens every day, even at large enterprise companies.

When developing smart contract applications on decentralized blockchain networks (web3), the opposite is true. You either get it right the first time, or you are f**ked.

there do exist some concepts for upgrading your contracts and their configuration, but there is no one-size-fits-all solution that is adopted with consensus across the web3 industry

Verifiable randomness — on-chain honesty

To ensure a honest mint, where nobody is able to determine the outcome of the reveal in advance (and thereby using game theory to only mint super rare farmers!), we are using a Verifiable Random Function (VRF), powered by the Chainlink oracle infrastructure. If you want you want to know more about technical concepts like this, be sure to subscribe to the mastermice medium blog!

Chainlink allows all kinds of interesting concepts when developing smart contract applications.

What happened yesterday? Inside the Howdy Games

While yesterday was a great learning experience for the whole team, there were a few hiccups along the way. We discovered some last minute (because why not, haha) corrections in the farmer artwork during the final authoring together with our designers. This resulted in re-uploading all artwork to IPFS (which of course also took longer than expected, perfectly in line with Murphy’s law), pinning the artwork using Piñata (immutable farmers ftw), verifying the deployment and proceeding with the go-live.

Uploading the farmer metadata took way longer than expected! #teamnosleep

The artwork corrections also required us to change the prepared on-chain metadata. We did not want to leak our rarity & trait system in before. We are a fun game after all, and using the reveal as a kind of “minigame”, before the actual game is launching, seemed like a nice user experience to the creators.

We actually had to split up our metadata uploading into 300 on-chain transactions (thank god we are on Polygon, the fees that were required for this are not worth mentioning).

The final smart contract call, wen go-live?

View this transaction on Polygonscan

This should have been the last step before revealing the collection to the Honest Farmer Club & the world! We were super happy, our discord moderators (thank you for your service, you’re the MVPs!) announced that we were finally ready & set. Every farmer was excited to finally see which farmer he minted in the past days!

A script that calls the getRandomNumber() function on the HonestTraits contract

Showtime

At this point it should have been a matter of minutes, we were like 99.5% finished. We had to execute 2 more on-chain smart contract calls, waiting for the answer of the Chainlink oracle in between them.

You can’t know how long this can take in advance, but it should not be more than a few minutes.

The smart contract call failed and we did not believe what just happened. Most likely, it was a configuration error (not a logic error). When deploying the HonestTraits contract, the dev has to pass special, chain specific configuration to make Chainlink VRFs integrate into the contracts custom logic.

We we’re all really tired after a long day of honest work, and sad to disappoint every discord user around the world who stayed up late (or woke up early!) to experience the honest reveal. We had an emergency meeting (remote), went to sleep, set new short-term goals and continued working on the Howdy Games.

Going forward

  • Migration (More info coming soon!)
  • More flexibility
  • An awesome journey (together with you!)

Going forward, we will migrate to a different contract infrastructure, improving the flexibility, extensibility and safety of our blockchain game. We are looking forward to this in the dev team, as this was already planned to realize the time-based partial reveals! This will open a new chapter for the Honest Farmer Club, and we are thankful for your support and understanding since the launch of the OG farmer roles back in the days!

Onwards and upwards,

mastermice

PS: Make sure to subscribe to this blog, stay tuned for more interesting stories from the Howdy Games!

--

--