Ambrosus Engineering Progress Report
This is an update from Vlad Trifa, Chief Product Officer at Ambrosus. It discusses product development and strategy surrounding Ambrosus’ core technology.
It’s been a busy and productive stretch for Ambrosus’ development team since I joined the company full-time six weeks ago. Today, I’m pleased to report that we’ve made significant progress in shaping the core Ambrosus network and ecosystem architecture, and spent quite some time researching scalable distributed storage solutions. The best part is that we plan to release a private alpha version of our ecosystem to selected partners and clients in the next few weeks; a public beta will follow in Spring 2018.
Blockchain has become so hyped that nowadays businesses can n-fold their market value just by adding the magic keyword in their name! But behind nice PR stories (which is a fair short-term goal for some companies we talk to), large-scale and long-term adoption of Blockchain technology in the food and pharma industries will only happen if we’re able to demonstrate and quantify the improvements this technology brings to our clients.
We can achieve our mission by demonstrating tangible improvements in at least one of these dimensions over current solutions:
Reduce the time/effort/costs to perform tasks. Example: end-to-end transparency of the exact provenance of a product can reduce significantly the time required to identify which products are affected in case of product recalls.
Increase sales of their products. Example: real-time visibility enables better dynamic stock management reducing times when a product is out of stock in a warehouse or on a shelf.
Improve the value of the services/product offered of our clients. Example: high-end wine bottles can now be digitally protected and gifted to someone, therefore drastically reducing the possibility for the wine to be stolen or counterfeited once it’s been bought by someone.
Create new monetization possibilities. Example: Enabling third party service providers to participate in the sourcing or transporting of products creating new services and revenue streams.
Without this, few senior executives in the food/pharma industry would risk integrating Blockchain technology for anything more than a short-lived, localized, low-cost PR stunt. We accounted for this when shaping our product roadmap.
The majority of the challenges in today’s world come from a pretty common root problem: there’s no modern, scalable, and cost-efficient solution that allows businesses to securely store and share trusted information about every single asset (pallet, order, batch, etc.) and event (product scanned at customs, pallet loaded on boat, batch packaging printed, etc.) happening in their supply chains.
Ambrosus is a scalable decentralized ecosystem to collect, store, process and share real-time data from every corner of your supply chain. Each actor can run their own masternode and the network takes care of synchronizing information and sharing it with the right participants.
As a result, supply chain information is scattered across numerous systems with little or no integration between them; this prevents companies from having a complete, accurate, real-time view of their supply chains — making many operations difficult or expensive (and leading to issues such as product recalls, etc.).
Ambrosus System Architecture
Ambrosus is the first distributed supply chain management solution that combines Blockchain + IoT in order to offer business real-time visibility of every corner of their supply chains.
Ambrosus is essentially composed of four key elements:
Data Storage. This is the heart of our solution. It’s the software infrastructure — the backbone — of Ambrosus, which we call AMB-NET(short for “Ambrosus Network”). AMB-NET is a distributed ledger running on a few masternodes that all maintain a shared “public” directory of every asset registered on Ambrosus. Think of it like a global-scale public DNS, but for product IDs and events happening to those products. Note that not all the information has to be stored publicly — each node can have its own internal database to store its own private data, accessible only by selected entities (apps, partners, users).
Data Collection. Thanks to APIs offered by Ambrosus nodes, businesses can easily generate unique IDs that can be linked to each one of their products (an operation called serialization), which can be printed directly on the packaging or using RFID/NFC tags. Furthermore, those same APIs enable any embedded device to read from and write sensor data to AMB-NET.
Data Sharing. The last element of Ambrosus is the ability for the node to share some information with other nodes in the network or with other applications. Thanks to our API and numerous client libraries we’ll be releasing, we — and our partners/community — can easily access and use product information from Ambrosus to rapidly build mobile native and web applications for numerous purposes (product authentication and verification, loyalty apps and games, etc.). Likewise, this also allows us to create integration with the IT systems of partners.
Applications. The last piece of puzzle — and likely the most interesting — is the ensemble of applications that will be built by us and our community as mentioned above. In the long term, we hope to release a marketplace on top of Ambrosus allowing anyone to build complete and vertical apps that can be monetized individually. Think of it like an “App store” for supply chains where experts in a specific industry can create a complete app on top of Ambrosus that encapsulate the specific steps, needs, and regulations of that industry (say vertical and niche solutions like “tea production in Sri Lanka” or “Sake export”).
Ambrosus Data Model (ADM)
The main role of AMB-NET is to provide a single and uniform solution to store information about supply chains in real-time. To make this easy, we are currently finalizing the universal Ambrosus Data Model (ADM), resulting from more than 10 years of research and practical experience creating standards for the Internet of Things. Essentially, the ADM is a revised and improved version of our own previous work on the Web Thing model — the initial submission that laid the basis of the W3C efforts in standardizing the Web of Things.
The ADM is a very simple and intuitive JSON document that models every physical element in a supply chain as an Asset, and every dynamic change to one (or more) assets as an Event. Therefore, one can retrieve the list of all events of any asset to learn the entire history of that asset (where it was, when, and the conditions at that time).
Companies create Assets on Ambrosus via a simple API call to their network node; those Assets get duplicated across the network. Other apps or devices can then create Events each time they see, measure, or interact with those physical products.
AMB-NET Nodes
Each node in our network is essentially a standalone, scalable application that offers a REST API to read/write information about assets and events from/to AMB-NET, local storage, and/or various Blockchains. In other words, nodes are gateways that offer a classic REST API based on ADM to access the Ambrosus Network. Besides, nodes can (but don’t have to!) communicate with other nodes directly to keep memory shared by all nodes in the network in sync (the global lookup table of unique product IDs).
Currently, we have a working version of the local storage (data is stored in MongoDB) which we use for fast prototyping, benchmarking, and client trials. Although not decentralized or blockchain-based, this solution offers us a short-term solution that provides our clients the scalability and speed required for high-throughput serialization, on top of offering them full control over their data (as it doesn’t leave their servers).
In the meantime, we’ve also been developing decentralized SDKs; future releases will enable users to choose which information they would like to store internally/privately and which they would like to share publicly on the Ambrosus network or on other blockchains.
Our ultimate mission in the long-term is to get the supply chains of clients all residing on the Blockchain. However, we recognize that businesses will need time to align with that vision. A centralized, blockchain-ready solution is a great tool to get us there. And, since centralized and distributed providers share a standardized API, they can be used interchangeably.
Currently, the centralized provider is using all the Blockchain benefits such as:
Accounts consist of a private and public key
Entities are immutable
Entities are signed by creator
Scalability research
As outlined in our original whitepaper, Ambrosus consists of two layers: One dedicated to defining business logic and high-level concepts (ADM), and the second layer handling data storage (i.e. mapping ADM to Blockchain and/or centralized storage primitives).
All technologies look great in whitepapers, but it’s important we make well-informed decisions about our technological stack. So, we got our hands dirty and tried them out for ourselves, setting up our own private network to benchmark writing/reading speeds and costs.
We tested two private networks:
Clique, the engine behind the Rinkeby test network, with Ethereum mist wallet support, built by Ethereum Foundation. Support for it is a part of mist wallet.
Aurora, the engine behind the Kovan test network, with Parity wallet support, built by Web3 Foundation.
We also tested the following solutions for distributed storage of IDs and content:
IPFS
Swarm
BigchainDB
What’s next?
We’re now heavily building this first release of the Ambrosus network using a combination of these technologies and we plan to quickly deciding on the best tech stack moving forward. For the moment, we have decided not to publicly release our source code (yet), but we’ll rapidly open-source at least the documentation of our APIs, so our community can start playing around with our official AMB-NET. If you’re a developer and would like to get access to it, please contact [email protected]. The public beta is scheduled for Spring 2018; the enterprise-grade release for full-scale projects will go live this summer. And if you’re a developer, like this vision and would like to join our mission, well, my email is above too.
Let us know in the comments if we missed any important technology!
As always, if you enjoyed this post, please hit the clap button so we know what you’re looking to learn about! In the meantime, we welcome your feedback.
Stay tuned,
Vlad