Coconut Report 24

Utah, US

This week, I mainly spent time on hacking and reading documentation. Different from Rust documentation, the Solidity documentation is full of warnings about how not to write contracts. There isn’t much about its language syntax. A weird but must-use tool for building smart contracts on Ethereum.

BigAnnouncement.eth hacks

We finished our MVP roadmap, but need to do more detailed work, such as verification, error handling, and withdrawal.

I am writing the Solidity contract slowly. Mainly because I want to implement many functions at once, and even without any tests. I thought I could, but I couldn’t.

Programming money itself also makes me nervous. It’s not easy to write a bug-free contract. I think some dapps haven’t encountered more bugs only because there are not enough real user tests.

Writing in Solidity is like writing JavaScript. The two languages are easy to write but not easy to write well. When I made mistakes, I spent a lot of time on debugging, but I didn’t feel I am learning. As a newbie, I hope I don’t bother other developers by creating issues for them.

Again, The Pragmatic Programmer is a great book to keep on hand.

About dapps, I deployed the website twice this week. The IPFS works perfectly, but blockchain domain services are not that great to compared to the non-blockchain products.

I use Netlify for most static websites, and it works very well. But Fleek, as a blockchain-based Netlify, sometimes doesn’t work smoothly. It auto deploys the site to IPFS each time the GitHub repo is updated, but it doesn’t automatically update the content on the DNS domain,, which Fleek is configured to manage. This is the second bug we encountered with Fleek.

With the Ethereum-based ENS domain, bigannouncement.eth, I pay 0.6 USD in ETH each time I change the IPFS hash. The first time I paid about 2 USD in ETH a couple weeks ago. The .crypto domain works very slow, and I only deployed once with it.

I can imagine very few people using these services compared to traditional services, such as Netlify. So these blockchain services can’t be thoroughly tested and users will see a lot of bugs. The discouraging user experience probably won’t help industry adoption at the moment.

RiB Community

Sol introduced me to another Rust blockchain project, Elrond. Solana added RiB to their official blog post, 7 Reasons Why DeFi Projects Will Build on Solana Blockchain. Thanks for the support!

The RiB community grows as slow as the general blockchain engineering.

I am slow too. I revised the RiB one-year blog post, which has been delayed again. I haven’t finished it, though, and I hope I can make it next week.

Built and things learned

  • The Big Announcement
    • Wrote IPFS hash to the Solidity contract (update the contract state)
    • Retrieve and display message from IPFS
    • Implement bidding on message in ETH
    • Learned JavaScript await, promise. JavaScript has changed a lot from ten years ago

Readings and notes

She could have said, "In one respect this sick-nurse is perfection–when she is on the watch, she never snores.” Almost any little pleasant lie would have taken the sting out of that troublesome but necessary expression of the truth.

Well, here we are 25 years later, and not much has changed. If we were feeling snarky, we could perhaps describe IPv6 as “the String Theory of networking”: a decades-long boondoggle that attracts True Believers, gets you flamed intensely if you question the doctrine, and which is notable mainly for how much progress it has held back.

Luckily we are not feeling snarky.

An industry rule of thumb is that, depending on how carefully they work, programmers make between 0.5 and 50 errors in every 1,000 lines of code they write. Because cars and aircraft contain tens of millions of lines, the chances of an error-free system are in effect zero. Even when bugs do not lead to catastrophe, they put a constant drag on a firm’s productivity.

A survey commissioned by Stripe, a digital-payments processor, suggested the average developer spends 21 hours a week fixing old or bad code.


  • Watched Jackie Chan’s old movies.
  • Listened to Hamilton again, and read some comments and posts on this topic.
  • Went hiking. Getting close to nature always brings inner peace.