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.
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.
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, bigannouncement.news, 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.
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
Readings and notes
- A small book, On the Decay of the Art of Lying. Mark Twain’s wit is hidden in his humor.
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.
- Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | AI Podcast #109 with Lex Fridman. Brian is humble. I like him and the host as well. They talked about things without bringing too many opinions. It sounds like a story. Everybody likes stories.
- The Economist last week had an article, Schumpeter : When bits bite. It gave examples of serious problems in software.
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.
- China’s Blockchain Infrastructure to Extend Global Reach With Six Public Chains. Interesting news: “one network, two systems”. Remember “one country, two systems” for Hong Kong?
- Random read on The Federalist Papers, and it’s Chinese version, 联邦论：美国宪法述评. I learned a lot of classic theories.
- Our Next Life. This is a website that a couple writes down their thoughts when preparing their early retirement.
- 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.