It’s the end of Q3, a little over 3 months since our last tech update! It’s an exciting time here at ShipChain, with full-steam development ongoing across over a dozen codebases and new talent constantly joining our team as we grow into a powerful workforce. We’ve been building some interesting initiatives that we’re excited to share with you, and today, we’re announcing the release of several of them as we invite community feedback and collaboration. We’re still working on the ShipChain Web Portal with the planned public release of version 1.0, and these are the components we’re using to build it. Here’s a quick run-down across the big picture items we have in the works right now —
Introducing the Engine
When we started building our ecosystem last year, we knew that adoption of new technological paradigms is often slow moving and reluctant in the logistics space, and that we’d need to build tools to simplify integration for as many companies as possible. That’s why we started building Transmission, a python + django initiative that enables REST (“Web 2.0”) API calls to interact directly with blockchain contracts and enables fast searching on shipment data (by leveraging a relational database to cache a subset of the blockchain).
Fast-forward to May, and we noticed that interacting with the blockchain through Transmission still wasn’t as easy as we wanted it to be — We needed a solution for secure secret management, and managing the encryption/decryption of remotely hosted files. So we began our work on Engine, a novel approach to wrapping blockchain interactions behind an internal NodeJS service. With Engine, you can securely store keys to many wallets and allow other authorized services in your network call for blockchain interactions, without having to expose private key data to each service or manage global nonces. Engine also stores Vault (explained later) credentials, so you can request a (decrypted) PDF attachment or tracking from a shipment, simply and easily. We aim for future versions of Engine to be contract-agnostic, meaning any Ethereum-based blockchain project could integrate it to simplify both on-chain contract interactions and off-chain storage mechanisms.
We are excited to announce that Transmission and Engine are both now available on our Github! We’ve had great success in the pilot Alpha with our partners, but to be safe, both initiatives should be considered beta quality.
Our Storage Approach – ShipChain Vaults
Long-Term Large-Object Storage is a major hurdle for any blockchain company. Today, storing one megabyte of data on the Ethereum chain might cost up to 3.7 ETH (at 20 gwei gas prices) depending on how fast you want the blocks confirmed — Ethereum isn’t designed for storing large data. Also, that $10,000 PDF you just uploaded would probably live on the ETH chain forever, which doesn’t agree with most logistics compliance departments (who usually have a policy of pruning data after 90 days to a year). Distributed storage solutions sound nice, but nothing really exists that’s ready for us to use it today — IPFS and Swarm have no retention options; FileCoin, Sia and Storj aren’t ready for production use yet and a myriad of other options exist, but seemingly only on paper. Disagree? Change my mind.
Enter ShipChain Vaults – an (imperfect) approximation of the distributed storage paradigm. We don’t want to re-invent the wheel or the distributed storage market, but we need a solution for storing data in the meanwhile. Vaults are a differential (encrypted) storage scheme for metadata and attachments, and when combined with VaultDrivers for HTTP, SFTP, Amazon’s S3 and IPFS, they allow our pilot partners to choose where and how their private data is stored (even on-site!), while still posting cryptographic signatures to the blockchain so anyone can be sure the history has never been tampered with. Currently, Vaults aren’t fully “distributed and trustless” — they are only available to internal fleets as a part of the Engine package — but we plan on developing a smart contract repository where a Vault Operator can list their storage services and charge a small fee for safely federating file storage read/write access to users who don’t want to operate their own Engine. We’ll add VaultDrivers for Swarm and FileCoin (probably) as they come to general availability, allowing users to choose between a centralized Operator and a decentralized storage service.
Vaults are available now as part of the Engine initiative, but we’re weighing the pros-and-cons of splitting it into a stand-alone project available to any platform requiring a not-quite-distributed storage market.
Track & Trace – Hardware and Android Lite-Client
Our pilot programs have been trucking along (…), shipping great software (…) and delivering results (please stop). Specific details of the pilot programs are still under strict NDA, but the hardware is ours to share! Our hardware lead, Rudny, has spent his summer making trips on-site to install and maintenance our devices, assuring reliability and quality of our tracking hardware. The good news? Making your own ShipChain Gateway Device is so easy and simple, in the near future we’re going to open source the hardware schematics and software necessary, along with a complete tutorial blog post on how to put it all together. We’ve said it before and we’ll say it again — Our goal is never to be a “hardware company,” so by open sourcing our schematics and designs, we hope to provide the necessary resources for anyone to build a ShipChain-compatible Gateway Device (that’s a fancy term for a cellular connected IoT system posting tracking data to the blockchain), from a home hobbyist to a large ELD manufacturer.
But is that enough to spur adoption? We know we can’t force our hardware into every truck on the highway. That’s why we’ve started work on the “Lite-Client,” a (free) Android app with the full features of ShipChain Web Platform and just enough GPS Track-and-Trace to get a driver started with the ShipChain Ecosystem without requiring any hardware installations or startup costs. The app will take several more months to develop and test in the field, so you can expect to see it in the app store sometime next year.
SideChains & SmartContracts
As you may know, our v1.0 LOAD and ShipToken (aka ShipCoin) Contracts have been live on the Ethereum Mainnet since early this year, with testing happening mostly on private networks or the Ropsten testnet since last November. Our usage and pilots so far have shown that they are useful and functional and we’ve deployed updated versions with fixes as we’ve found them needed. All things considered, the Ethereum-based platform we’ve built since January is a success. We’ve learned a few new things along the way, so we’re planning on re-writing the contracts to better optimize gas usage and organize code structure — We’ll publish full details (including public contract addresses and ABIs) for LOAD Contract v1.0.2 coming soon, keep an eye on github.
We’ve said all along, we started building on Ethereum because it’s the most mature platform — the best tested, the most stabilized and secure SmartContract network, with the most developed tools. Our friends and supporters have asked us to evaluate dozens of other platforms, and we’ve examined every last one of them to ensure we’re basing our technology off the best possible ecosystem. There is no doubt in my mind that today, the Ethereum platform enjoys a significant advantage over most other SmartContract solutions — with toolsets and developer support already widespread and documentation readily available. Other blockchains with SmartContract solutions have shown big promise, but we’ve been cautious about committing ourselves to any platform that doesn’t have years of success behind it.
Today, we think we’ve found a fit. We are excited to announce our plans to develop our sidechain atop a platform we feel confident about — Loom is a sidechain implementation that implements the Ethereum EVM, making it possible to move our Solidity contracts off the sometimes-congested and expensive ETH mainnet and create a truly open blockchain dedicated to processing logistics transactions. We can sleep soundly knowing we’re using the original EVM which has been tested and developed (and attacked!) thoroughly for over 4 years. Loom is still under active pre-release development, but our tests so far have been exceedingly positive.
We want our community to know what to expect as we expand our sidechain program, but it’s important to emphasize that all our plans are subject to change, we are building upon outside technology that is still developing and nothing is final until it is final (especially any planned features or “release dates”). What we do know right now is that we insist on delivering a truly open, public blockchain — as a decentralization ideologue, I’m adamant that a permissioned/consortium chain or system based on Proof-of-Authority is almost as bad as having no blockchain at all. Our blockchain will be decentralized, censorship-resistant and trustless. This means we’ll rely on public validation nodes, which typically requires that network transaction fees (in SHIP) will be used to pay validators for performing work. Currently, we’re testing Loom’s implementation of delegated Proof-of-Stake (“dPoS”), in which every token on the sidechain also represents a vote for witnesses — the witnesses with the most votes are “elected” as validators, and paid out “salaries” (which would be derived from network transaction fees). We intend, by mainnet launch, to support interchain transfers with Ethereum (probably utilizing Plasma Cash), so holders of SHIP tokens on Ethereum Mainnet will be able to safely transfer their tokens back-and-forth with the sidechain; the total supply will remain fixed at 500 million tokens maximum available across the 2 chains.
|Sidechain – Facts & Figures||Private Alpha||Public Beta
(SUBJECT TO CHANGE)
|Q4 2018||Q1-Q2 2019||TBD|
|Usage Open To||Partners Only||Click Here||General Public|
(commonly called “Masternodes” by other projects)
|Validation Scheme||Proof of Authority||Delegated Proof of Stake||Delegated Proof of Stake|
|Plasma ERC20 Root Chain||Private||Ropsten||Ethereum Mainnet
|Target # of nodes||5-20||50+||?????|
(* Anyone can run a public validator node, receiving SHIP as payment for performing validation work, but all validators must be elected by a significant voting share from the pool of token holders, and post a fair bond of tokens to be sacrificed if they submit “cheated” blocks — we currently project validator bonds will require about 250,000 SHIP, subject to change)
Anyone interested in running a sidechain node should sign up to help us beta test the network before it goes live; we’ll select as many testers as possible to help run the test network and get the software setup so that a mainnet launch can be as smooth and truly decentralized as possible.
We’re working on fully documenting and expanding available education resources about the ShipChain platform. Our new docs site contains our platform overview, information about our smartcontracts, our current public data structures and links to build/install instructions for Engine and Transmission. Writing great documentation takes time and community participation, so we welcome all feedback and suggestions on how we can improve these resources.
Whew, what a mouthful. We are so excited to announce all of this and soon, to release our platform and we are very proud to be keeping fairly consistent with our original roadmap. It’s been a ton of work to get this far and we have so far yet to go — so make sure you tell your friends we are hiring talented developers in Greenville, South Carolina.