Ethereum for Web Developers Book & Devcon challenge

Hey everyone! As some of you may know, I’m super happy to share that the book on Ethereum for web developers I’ve been working on for the past year has been published!

The book is for any experienced web developers who want to take their first steps in blockchain tech, by building applications backed by the Ethereum network. After an introduction to blockchain in general, the book shows how to build a DApp from scratch, including a short crash course on smart contracts, but focusing on client side code.

The book goes from basic topics such as querying the network, sending transactions, or monitoring events, all the way to indexing, decentralized storage, user onboarding strategies, and even layer 2 scalability solutions.

If you are around in Devcon, I’ll be giving a talk about What I learned from writing a book on Ethereum on the 11th at 11.15am in room B2.

During that talk, I’ll share my learnings regarding the difficulty of building a robust decentralized application, in particular, in the face of chain reorganization or unreliable connections. I’ll be posting a challenge on how to implement a seemingly simple application, to show that there are several edge cases that make it actually surprisingly difficult. I’d love to then hear your thoughts on how you solve it!

I’ll also be sharing my slides here, so stay tuned :slight_smile:

3 Likes

Here are the slides for the talk, hope you liked it!

During the 5 minutes of the talk, I shared a few complications while building a seemingly simple app. In particular, showing the tokens of a user from an ERC721 contract, which involves listing the user’s tokens in the current block, and monitoring for new ones.

However, listing current tokens does not yield information on in which block they were received by the user - and tokens received in recent blocks need to be monitored to ensure they become finalized. On the monitoring for new tokens side, subscriptions cover most issues (assuming a websocket connection is available), as long as they are connected. A lose in connectivity during a reorg means we lose that information, and may end up with a spurious view of the chain - EIP234 rationale section includes a good detailed explanation of this issue.

So, how do you approach this problem on your dapps? I’m super curious to hear!

3 Likes

A post was split to a new topic: What is “chain reorganization”?