Ethereum, Wasm, Rust
It's been a busy couple of months. I started out studying up on Bitcoin Core, worked my way through my first Solidity project, and joined a blockchain cohort. I'm feeling comfortable with the Web3 Ethereum Javascript API and the Solidity smart contract language. I've run through several exercise projects using Truffle Suite, a set of developer tools that make writing and testing decentralized applications painless. I've also deployed my first few contracts to various ethereum blockchain networks, brushed up on cryptography primatives, and completed the OpenZeppelin Ethernaut wargame challenges (tough!)
On the side, I've been working on a personal project designed to help me maintain an optimal routine. I wasn't really sure what I was going for when I started, I only knew I wanted to replace my reliance on Bear, or to build my own version of Notational Velocity, which I've missed dearly. I then decided to include my daily routine checklist, and a mechanism for monitoring my progress. It's not quite ready for the outside world, but if you're curious it's called "everyday" and can be found here. It's also a good example of a diverse set of newer technologies, including:
- React >16 for Context API, Hooks
- MetaMask for login via signed messages
- JSON web token authentication
- Golang authentication microservice
- Docker development and deployment
I'd like to replace the javascript full-text search (which I'm sure will be running into memory issues as my docs grow) with a WebAssembly search running in a Web Worker. I'll attempt to build this out in Rust, as a first project. I also like the idea of full end-to-end encryption on all data, using Wasm code running in a Web Worker for encryption before it even leaves the browser.
Wasm is so exciting. It already has full browser support (as of last year) and is seeing rapid development. As it enables other languages to finally become a part of the browser development community, while providing both run-time and compile-time boosts, I just can't see how this isn't going to be a complete game-changer for the web as a platform. Polkadot, the "next-generation blockchain interoperability protocol", is being built with Wasm support from the ground up, by former Ethereum CTO and current Parity CTO Gavin Wood, no less...
I'm genuinely excited about software development in 2019. Between amazing open-source networking projects like IPFS and DAT, amazing languages like Rust, Blockchain interoperability projects like Polkadot and Cosmos, well, it's hard to pick where to direct my focus. For at least the next two months I'll be continuing on with Rust and Wasm while looking for opportunities in blockchain and and software systems programming.