One of the biggest problems for blockchain platforms is interoperability. The software ecosystem around blockchains like Ethereum, while built on a rock-solid foundation, can be complex to work with and to integrate into applications, representing a significant barrier to mass adoption.
At Bloom we make use of a sophisticated set of technologies from this ecosystem. At the time of writing, our contracts are based on Solidity in Ethereum, using Truffle for contract deployment and blockchain interactions, and the Whisper functionality in the Go Ethereum (“geth”) implementation for off-chain, distributed negotiations. While these technologies offer great benefits for building distributed applications, it would be a lot to expect someone using our platform to implement piece by piece! So of course, we set our efforts towards making this great technology something which people can integrate as easily as possible.
The industry standard for containerizing complex services — making them as easily as possible to deploy and integrate in a broader application — is Docker. With this simple to use tool, an application, and all its dependencies, can be deployed and activated with only some basic configuration, removing the need for complex dependency management and developer overhead in learning every in-and-out of a platform.
The Attestation Kit system takes advantage of an easy-to-use Docker Compose architecture. At its core is a Docker container with Bloom’s application for interacting with Ethereum contracts and other actors on the Bloom network over Whisper: this includes an easy-to-use API and background workers for more complex tasks. The architecture also optionally provides a preconfigured PostgreSQL database and light client Go-Ethereum implementation, which we recommend for easy adoption; the default configuration for the system will run all three together.
The system allows for any application to act as an attester, a requester, or both, for attestations on the Bloom network via its easy-to-use API. The Whisper workflow on Bloom consists of a requester soliciting bids for a type of an attestation it needs performed, which is followed by attesters submitting bids, the requester choosing an acceptable bid and forwarding job details to the attester, the attester verifying the data of the subject and requesting payment, the attester authorizing payment, and finally, the submission of the attestation and notification of the requester. The system is designed to handle most of these details seamlessly, with minimal intervention from an application — acceptable amounts of payment are configurable for each type of attestation, and both attesters and requesters can be whitelisted for any and all types of attestations. The interaction with Bloom’s Ethereum contracts for submitting an attestation is also handled seamlessly by the system, requiring the application only to submit the necessary data.
Getting the system up and running is very simple. Many of the major hosting providers (Amazon Web Services, Google Cloud, and so on) provide excellent tooling for working with Docker and Docker Compose. Using the facilities of your hosting provider, you can deploy the containers in the application after providing some basic configuration, such as some newly created Ethereum accounts for working with contracts, a host for your application to receive webhook requests, and related configuration.
To learn more about the latest with Bloom: