Getting Started with Enterprise Blockchain Development with tutorial + hackathon videos

Eximchain
Eximchain
Published in
8 min readApr 26, 2018

Most major companies in all industries are exploring blockchain technology, but few sectors are as ready for disruption as Supply Chain and Finance. At Eximchain we want to solve real business pain, empower businesses to create their own solutions, whilst providing them the tools necessary to do so. Blockchain has had a great year of adventure and experimentation in 2017, and now it is time to start adding real value to real businesses. In this article we will share a little around our vision, and then swiftly move into showcasing Eximchain’s inner workings, paired with the release of our 12-part Hackathon Series video (available at the bottom of this article), which will allow any developer to get started with the Eximchain Toolkit.

Blockchain R&D and Adoption today

There are several reasons why enterprise blockchain is currently said to be going through the ‘Trough of Disillusionment’. Much of 2017’s hype around blockchain led to severely inflated expectations around what it could deliver so early, and what was required to do so. Enterprises face many difficult decisions when considering the adoption of a new technology before they can roll it as the new fundament for large-scale production and commercial processes. They are faced with relatively immature technology and questions around speed, scalability, security, privacy, permission layers, which ecosystem to join, et cetera. Many of these decisions are trade-offs. At Eximchain we believe we have a solid grasp on what small businesses and enterprises alike require of a blockchain solution in our industry (supply chain finance). We want to give businesses the flexibility and empowerment to develop their own solutions using our Toolkit, including advanced governance mechanisms and scalability. To prove this, we will present a brief overview of the Eximchain methodology, how you can get started with it, and how it will ultimately help many businesses manage their physical, financial, and digital supply chain flow.

What is Eximchain?

Eximchain brings visibility to global supply chain finance (SCF) through smart contracts. We build a public, permissioned chain for small-and-medium enterprise (SME) buyers and suppliers to create supply chain optimization tools and gain access to affordable capital sources to grow their businesses. Our smart contract-based ecosystem allows SMEs to quickly implement customized SCF solutions or issue digital tokens on a permissioned fork of Ethereum supporting data privacy. We adopt a consensus protocol and quadratic voting-based governance model, based on Quorum, to provide practical, finite time security guarantees on our public, permissioned blockchain hybrid. From financing to procure-to-pay, our products utilize smart contracts to optimize the global supply chain for buyers, suppliers, and financiers.

Eximchain’s Toolkit

Eximchain is offering a software development toolkit that allows companies, Enterprises and SME’s alike, to build end-to-end solutions to manage their sourcing, financing, and logistics processes on a public, permissioned blockchain with enhanced governance and privacy. Think of it as the App Store for the Supply Chain Industry. Over the next year Eximchain will build at least 3 Proof of Concepts in Sourcing, Financing, and Inventory Management. These PoC’s will deliver solutions on an application level to demonstrate how companies can use our Toolkit to solve day to day problems. The first of these PoC’s is underway with a China-based sourcing platform featuring over 30,000 registered small and medium sized enterprise users. The Toolkit will support private smart contracts, and enough flexibility to build customized solutions. We think a holistic approach is key, rather than tackling just the protocol, or application level.

You can already use our software to launch a test net of any size using our terraform based tool at https://github.com/Eximchain/terraform-aws-quorum-cluster. You can view early results of our stress tests at https://github.com/Eximchain/quorum-stress-tests.The Toolkit is designed with the idea in mind that it should be very easy to manage your infrastructure, distributed blockchain networks, API’s and keys. In the future companies will be able to build dApps and issue tokens on top of our Toolkit to manage their supply chains.

Getting started — Eximchain Blockchain Infrastructure as Code Hackathon

Last month, we gathered in Indonesia with developers at Blocktech to host a hackathon, teaching and learning how to build decentralized enterprise blockchain infrastructure on AWS (amazon web service). We have decided to release our experiences at the Hackathon into a 12-part YouTube series explaining in full detail how to create enterprise blockchain solutions on AWS. The hackathon showcases a lot of key features and decisions that go into Eximchain every day and will give you a good feeling on what the art of the possible will be with our Toolkit.

You can find the hackathon video in full at our Youtube channel, or watch the video at the bottom of this article.

The series is dense and aimed at developers, but we have summarized some of the key features of the tools used in the hackathon, and how they will closely related to Eximchain’s envisioned Toolkit and development ecosystem.

Tooling

Terraform — HashiCorp’s Infrastructure as a Code tool Terraform enables the creation of predictable infrastructure from our version-controlled configuration. It allows us to describe our network infrastructure while abstracting away the actual process of spinning it up. We use Terraform to deploy infrastructure that health checks itself via native cloud provider mechanisms, and replaces infrastructure that goes down. Terraform allows us to implement configurations for many cloud providers, for which we currently support creating/deploying the infrastructure in AWS and are working on many others.

Packer — Another tool by HashiCorp that allows us to build machine images with our software and scripts installed, which are used to spin up the actual instances that run the blockchain. Packer describes how to install the software we use for Quorum and Constellation. Currently we support building machine images for use with AWS, but like Terraform, it can be extended to support other cloud providers.

Eximchain Toolkit — You can have a look at all the publicly available materials at github.com/Eximchain. You will find tooling to launch a node connected to the Eximchain network, results of our quorum stress tests, and our Terraform AWS cluster repository. You will need the latter to participate alongside the hackathon series.

Infrastructure

The three tools together form the infrastructure for the hackathon series and represent some of the inner workings of Eximchain. The Infrastructure is setup using the tools above and laid out as shown in the infrastructure image.

Virtual Private Cloud

VPC’s are a feature of AWS that lets us create an isolated section of cloud where we can launch resources in a virtual network set up according to our own desires. The reason for three Virtual Private Clouds (VPC’s) is because of the networking that needs to happen. We are currently running a test net of 600+ nodes, all under Eximchain control, however future infrastructure can be launched independently and connect to the network. We are constantly testing to find the right balance between network security and speed. Our current network is already distributed, and running on real live infrastructure, and will decentralize over time. Quorum does this in a permissioned way, not just anyone can participate in consensus. This, again, is critical for enterprise grade solutions where you cannot depend on an unreliable node that’s run in someone’s attic, and for a public chain, where you need to protect the chain from malicious actors. Of course, a group of companies could also setup their own network, rather than run on a public chain.

Nodes

Eximchain is built on Quorum. Quorum is a soft fork of Ethereum Geth, and they bootstrap an encrypted layer underneath, called Constellation, to allow for private transactions. You have key pairs for both, and we store them durably in encrypted form using Hashicorp Vault. We use AWS credentials to authenticate this request. Our intention is for developers to be able to work with our platform without having direct access to any keys, which provides a nice abstraction, and allows for efficient teamwork.

We make use of a Quorum consensus algorithm called QuorumChain.

Quorum in general makes use of interchangeable algorithms, but we have chosen QuorumChain for a few reasons:

  1. It’s a more public mechanism, bearing a lot of resemblance to what Eximchain wants to do in the future, with designated block maker and validator nodes.
  2. We can add smart contract based governance mechanisms on top, which we need to do to enterprise proof it, but isn’t allowed in ‘vanilla’ Quorum because everything is predefined in the Genesis block.
  3. It’s close to our vision in terms of how we expect the network to scale and provides us the best chance to obtain valid stress test results for the future Eximchain network.

Boot nodes

These are used to broadcast connections through the blockchain. If you spin up a new node they contact the boot node to ask for all the other nodes in the network. The set of boot nodes in Eximchain and Constellation are spun up separately and are privileged because they are crucial to networking in the system. Their health checking is also managed separately. This means that network recognition becomes almost fully automated. New nodes only need to know the bootnodes to join the network, which will always be published on our GitHub for official Eximchain networks.

Vault

There are things that you need for Enterprise grade tooling that are not required for consumers. For example, the key management for a node is usually done on a computer consumer side, in the example of Geth or BTC, which is fine for consumers since they hold the entire blockchain. For an enterprise however, it is a bad idea, from a security perspective, to put the company keys directly on the machines that your developers are working on, lest they sign fraudulent transactions on behalf of the company . This is where the ‘Vault’ comes in, which stores our private keys for both the Eximchain and the Constellation Node.

Consul

The Consul provides the locking for our Vault servers. We need it for networking. Essentially it allows you to discover services within VPC’s. This means that the different nodes that we spin up will be able to talk to each other.

Combining all of the above it brings us to a fully cloud-managed network running on AWS, that automatically health checks itself and repairs itself if anything goes wrong. The use of QuorumChain’s algorithm combined with the Vault and Consul roles allows for a secure, private, governable network where there is no ‘consumer risk’ on an enterprise level.

Final Thoughts

The blockchain space is slowly maturing and Eximchain plans to add significant real value in 2018. Our toolkit will continue to improve, but already showcases our ability to determine the optimal characteristics for the Eximchain network and setting up and managing a global blockchain and network infrastructure. We can produce a network of any size and scale and load test it, which will continue to give us valuable insight into what Eximchain’s network will soon look like. We wrote this article because we felt this type of software needed to be publicly available, and not just in a GitHub repository, but also explained. Hopefully you enjoyed the read and will consider trying out Eximchain’s toolkit. Let us know your thoughts on any of the media below.

Watch our Eximchain Blockchain Infrastructure as Code Hackathon video now!

Warm regards,

Eximchain

Follow us on Medium

See Eximchain’s GitHub

Join us on Telegram chat

Join us on Telegram announcements

Follow us on Reddit

Follow us on Twitter

Follow us on Facebook

Follow our CEO Hope on Twitter

Sign Up for the Eximchain Newsletter

--

--

Eximchain
Eximchain

Eximchain enables supply chain companies to connect, transact, and share information more efficiently using blockchain technology. Learn more: www.eximchain.com