Howdy Developers!

Hacktoberfest has emerged to be one of the most popular movements in the last few years in the open source ecosystem. Jointly organized by Digital Ocean and dev.to, it has become wildly popular in welcoming novices and beginners into the world of programming.

With that bit of trivia, our current post is unrelated as well as related to Hacktoberfest.

We decided to run with the spirit of open source and publish a ton of code and documentation as much as humanly possible in the month of October.

So, here are our own little Hacktober updates 😀

💫⚡️ Talk @ PyCon India 2019

I (Anomit) presented some of our findings and implementations on Python multiprocessing at PyCon India 2019, Chennai on 13th October.

The talk was titled How we built a State Machine to keep up with a 1200+ Txs/second blockchain protocol. The blockchain protocol in question being ThunderCore protocol.

As a stateful API gateway that monitors and allows read capabilities on blockchain protocols, we needed to come up with a solution that would:

maintain a state as close as possible with the global state of the protocol

roll back the state in case of a situation as described above

alert consumers of the API services about such incidents in case transaction data was consumed from a section of the chain which is currently abandoned

… without introducing delays and latencies in processing transactional business logic on a high throughput blockchain protocol.

⌨︎ Demonstration code on Github

📺 Google Slides

💫⚡️ Blockchain Developer Meetup

We rolled into Bangalore from Chennai (PyCon India) and had to get to work rightaway for our first ever Blockchain Developer Meetup. Special thanks to Hasura for opening up their terrace for the meetup and providing for facilities to ensure that the event went through smoothly.

The agenda was clear for us: the meetup was to be a melting pot of brains who just want to build. Developers adept at API designing, implementation, full stack engineering were particularly welcome.

Anomit ended up spending almost an hour diving into the details of Ethereum smart contracts, the cryptography underlying Ethereum, ABI encoding etc.

Swaroop taking them through the first step of contract deployment with constructor arguments

This was followed by Swaroop taking us through a complete walkthrough for a beginner on EthVigil that covered the following topics:

Deploy a smart contract

Send transactions to it

Error handling and detection in passing method arguments

Set up webhook, email integrations on smart contract events and transactions

The introductory talks generated a lot of exciting ideas, opportunities for future projects, hackathons and collaborative programming. We couldn’t have asked for a better turn out.

💫⚡️ BlockVigil Transaction Manager

Last month, our Lead Backend Engineer, Samikshan wrote at length introducing the lifecycle/state transitions that an Ethereum transaction passes through.

Transaction/predicate logic to power business operations is at the core of our value proposition and hence, we pride ourselves on being able to deliver transactional integrity and real-time notifications, analytics on the stream of blockchain data.

But this, is achieved only by the presence of a Transaction Manager at the heart of the BlockVigil stateful API gateway. Follow along as Samikshan elaborates the design principles, high level architecture and challenges that came along on this journey.

Part 1: The Ethereum transaction life-cycle

Part 2: An Anatomy of the BlockVigil Transaction Manager

💫⚡️ EIP-712 support

Signing arbitrary schema of data in Ethereum was a mess with end users seeing a blob of a hexadecimal bytestring on their Metamask notification.

EIP-712 promises to fix that. We have published a complete walkthrough on our docs and also code to go along with which uses BlockVigil APIs to begin using EIP-712 standard features in your apps.

I think you should go check it out pronto.

[EthVigil Docs]: EIP-712: Signing and Verifying Typed Ethereum messages https://ethvigil.com/docs/eip712_sign_example_code/

Accompanying code on Github: https://github.com/blockvigil/api-usage-examples/tree/master/EIP-712