Coconut Report 23

Utah, US

This week, we moved out of Provo to Park City for a short vacation. Park City is cool. It’s a skiing city for tourists, and we expected there would be few people in summer. But we actually saw many people there for biking – there are a lot of trails among those mountains.

BigAnnouncement.eth hacks

Our HackFS project, The Big Announcement, went well according to our MVP Roadmap, though the journey wasn’t that smooth. The experience of building on Ethereum has been frustrating:

  • There are a lot of docs but few tutorials. I didn’t know where to start with the first line of code after reading the Getting Started docs.
  • The docs are often incomplete. Writers seem to expect prior knowledge of npm from readers, which I don’t have.
  • IPFS JavaScript code changes often, so things that worked two days ago do not work now. We spent too much time debugging API breakage.
  • js-ipfs doesn’t have a release page at all. We needed to build from source code to ensure we use a stable version, since an update to the CDN version broke our code.

Fortunately, HackFS hackers helped us a lot. We had a Zoom meeting with Carson from Textile, and he provided suggestions for our project. He asked questions about our dev stack, skills, and project requirements first, and ultimately suggested not using their service because our project is so simple. I respect that a lot.

I asked questions in the HackFS Slack channel too, and I got useful comments from other hackers. I wrote, copied & pasted some JavaScript and Solidity code – they are strange languages, and I am not that into them.

At last, we succeeded at running an IPFS node in the browser and saved messages to IPFS with a self-built js-ipfs. More details at the hacklog.

Building a dapp isn’t fun compared to building non-blockchain products. The blockchain developer tooling is far from mature. So far, it’s hard to enjoy the journey or feel motivated when programming the decentralized web dream.

I don’t see any blockchain platform succeeding without a smoother developer experience.

Blockchain and Ethereum

There is no doubt that Ethereum dominates and will keep its key position in the blockchain industry for a long while.

Other L1 blockchains need to interop with Ethereum just to stay relavent. Only then might their innovations even matter. Ameen tweeted,

this how Eth becomes the default “interoperability” chain. Every L1 will simply build a bridge to Eth, making it the default interop chain.

From the community side, even though people complain about the Eth2.0 development delay, the Ethereum community continue to feel confident about the platform – I consider it as a sign of a healthy community.

I am glad to see an inclusive community that accepts different, and sometimes conflicting, voices. More importantly, Ethereum attracts great developers as well as newbies – me as the latter, for instance.

China 1984

A guy was arrested for writing an article about two dairy companies, Mengniu(蒙牛) and Yili(伊利), manipulating China’s dairy industry standards. He then claimed he was pressured to delete the article on WeChat’s publishing platform, but he refused to do so. However, we can’t read it now because the article has been deleted.

A student who wrote about the same topic also received warnings. He later posted concerns about his safety. Might he be arrested too?

Other articles published on this subject continue to be deleted.

I suspect that many mainland citizens may not read those articles, and may not know that China has some of the worst dairy standards in the world. There is a saying that it’s better to drink water than Chinese milk.

This reminds me of the book 1984 again – you will understand China by reading this book. All successful Chinese internet companies cooperate and share data with the government in order to shape society.

More than one of my non-Chinese friends are curious that 1984 can be officially published and distributed in China. One Chinese friend suggested this is because most Chinese don’t read nowadays.

Built and things learned

  • The Big Announcement
    • Stored messages to IPFS using js-ipfs
    • Wrote a simple Solidity contract to set a message
  • LeetCode practice in Rust, on BTree, BST, and RefCell
  • Installed Solidity-mode by El-Get
  • Find the font from a picture, LikeFont

Readings and notes

The Graph is a protocol for building decentralized applications (dApps) quickly on Ethereum and IPFS using GraphQL.

go-libp2p by Protocol Labs

rust-libp2p by the Web3 Foundation

js-libp2p by Protocol Labs

cpp-libp2p by Soramitsu

jvm-libp2p by Harmony, PegaSys, and Web3 Labs

nim-libp2p by

py-libp2p by the Ethereum Foundation