Chronicles of a Blockchain Developer Pt. 1 - What the damn hell?
Chronicles of a Blockchain Developer
Pt. 1 - What the damn hell?
Blockchain development is a big fat baby - messy, immature, and fickle. I've had to jump in to the code recently and I'm worried my face is going to permanently look like this:
Who? What?
I am a full-stack web developer with a degree in CSE from the University of Michigan. My husband Doug and I run a company called 'Shrine Development' that works with companies looking for blockchain solutions. We advise, collaborate, and code. Until recently I have primarily handled all of the web needs while Doug worked on the blockchain side of things. This has changed with our latest collaboration - PassageX.
PassageX is an anti-fraud solution for event ticketing built on the blockchain. The application can run on multiple blockchains - including Steem!. We also support ethereum but decided to build our own private ethereum network because hello that shit is expensive. With a private network we also need our own block explorer.
Code talk, look away!
There are a few options (that I have found) for a block explorer that can be forked. The first one I tried is https://github.com/carsenk/explorer. This looked promising because it supports geth and the dark theme is pretty sweet. I started it up and it worked great for about 10s before becoming entirely unusable.
Problems with https://github.com/carsenk/explorer:
- It uses bower and npm. Together. Ahh! The version of web3 that is supported by bower is quite old
- Weird node_modules folder nested in the app directory that seems to be unremovable and unregeneratable (I know, not a real word). Removing it caused issues.
- 100s of SYNCHRONOUS requests per second! I think some of this had to do with an old version of web3 but really people, everything should be asynchronous these days. All of these synchronous requests tied up the browser and I couldn't even click a link
Next up, https://github.com/gobitfly/etherchain-light. This project is really promising. It has a more typical nodejs structure and seemed to work great. The app has no real-time updates but hey it's usable. Unfortunately, this app uses parity and I want to use geth. After the recent problems with parity can you blame me?
I spent some time trying to convert to parity from geth and then said f*** it and converted the etherchain-light code instead. This was really not too bad. I only needed a basic block explorer with block, transaction, and account pages. Removing the parity specific web3 code left me with a totally adequate blockchain explorer.
What I've learned
I have had to jump in to web3 and while I feel like I have learned a lot I am not really sure yet what any of it is actually doing. The amount of jargon is overwhelming and while I can follow most instructions I'm often not sure why I need to do this or that. Tutorials are almost always outdated and "production ready" code frequently breaks.
BUT
This stuff is really freaking cool!
Next up
I have just succeeded in docker-izing geth and my block explorer with a shared volume for the ipc file. Next up I will be trying to deploy it! I have been using https://github.com/karalabe/go-ethereum/tree/puppeth-devcon3 for inspiration.
Anyone else?
Do you have any tips for starting in blockchain development? How did you learn about blockchain and crypto? What communities do you belong to that have helped with this process? Please share!
Welcome to steemit @mgodrou. Join #minnowsupportproject for more help. @OriginalWorks will help you verify original content .
If you want to plant a tree try @treeplanter
Use @tipu to give users a 0.1 SBD tip.
Upvote this comment to keep helping more new steemians
The @OriginalWorks bot has determined this post by @mgodrou to be original material and upvoted(1.5%) it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
Congratulations @mgodrou! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @mgodrou! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Congratulations @mgodrou! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!