This is Part 5 of IoTeX’s Mainnet GA announcements. Throughout May 2020, we will share other components of Mainnet GA, including new tokenomics, governance, and technology. For more on Mainnet GA, visit the IoTeX Forum.
IoTeX Platform: New & Improved for Mainnet GA
Since IoTeX began in 2017, our mission has been to empower the Internet of Trusted Things — an open ecosystem where all humans and machines can interact with guaranteed trust, free will, and privacy. Over the past 2+ years, the IoTeX platform was built from scratch with our mission in mind. What started as a few lines of code has now blossomed into one of the most secure, performant, and decentralized platforms in the world.
IoTeX is more than just a blockchain — it is a full technology stack comprised of blockchain, IoT middleware, and developer tools to empower trusted data and trusted devices for trusted applications. We apply our first-hand experience building end-to-end IoT solutions like Ucam & Pebble Tracker to inform the new+improved design of the IoTeX platform. We are now ready to welcome the world to build the Internet of Trusted Things on IoTeX!
In this article, we explain the different layers of the IoTeX platform, as well as the guiding principles that informed its design.
The IoTeX Platform, Explained
The IoTeX platform employs a unique, modular architecture to meet the unique requirements of IoT-related use cases. At its core, the IoTeX platform seeks to enable trusted data and trusted devices, meaning developers do not need to replicate this complex work. Instead, developers can focus on building business logic, economics, and industry-specific components to differentiate their applications and services. Let’s walk through how IoTeX enables trusted data and trusted devices, layer-by-layer.
IoTeX has built one of the fastest and most secure blockchains in the entire industry, currently managed by 60+ decentralized Delegates and powered by our in-house Roll-DPoS consensus mechanism. The IoTeX blockchain protocol is open-source, built from scratch, and tailor fit to support large-scale IoT scenarios. Over the past months, we have made significant improvements to our blockchain, including cutting block time from 10 seconds to a lightning-fast 5-second block time with instant finality.
With Mainnet GA, the IoTeX blockchain will officially establish independence from Ethereum and incorporate a new native staking mechanism (nsv2). These are massive milestones for IoTeX — our network will now be fully independent and powered by native IOTX coins. As blockchain is the root of trust for the entire IoTeX Network, we are confident our state-of-the-art blockchain is ready for the masses. In later sections, we detail specific design consideration for our current and future blockchain design.
IoTeX not only excels in blockchain, but also in core middleware components that we have fine-tuned for IoT. What truly differentiates IoTeX from other platforms is our focus on middleware that enables trusted devices and user-owned data
- Decentralized Identity (DID): IoTeX’s decentralized identity framework enables devices to register an identity to the blockchain — to discover and be discovered — and also own its own data. “Self-sovereignty” for people (e.g., Sovrin, uPort) is common, but extending this concept and granting identities to devices opens the door to new human-machine and machine-machine use cases. Not all DIDs are created equal — IoTeX’s DID spec is advanced for both people and devices and is evolving at an exciting pace.
- Decentralized Storage: All of that IoT data … where does it all go? IoTeX offers flexible storage options via Cloud or decentralized storage, where data is “hashed” to the blockchain for verifiability and data provenance. IoTeX enforces protections for data at-rest and in-transit, and we are working closely with the IPFS team on decentralized encrypted storage for Ucam, which can be extended to other “Powered by IoTeX” devices in the future. See IoTeX’s Keynote at the IPFS Summit for more details.
- Confidential Computing: Once we own our data, the final step is to build applications where we can utilize our data while maintaining full privacy. By leveraging secure hardware, IoTeX enables privacy-preserving computations over encrypted data to unlock the future of user-centric applications. “Don’t bring the data to the code, bring the code to the data”.
Developer Tools & APIs
Another major focus for IoTeX in the past months and surely in the future is to make developing on IoTeX intuitive, efficient, and fun for both developers and companies. We have been fortunate to collaborate with IoT standards organizations (e.g., IIC, IEEE), enterprises (e.g., Nordic Semiconductor, Tenvis), and open source technologies (e.g., IPFS, ThingsBoard) to make all of the blockchain infrastructure and middleware accessible and usable by developers of all skill levels. We can’t wait to see what you will build!
- IoT Edge Oracle: in-house data oracle to port real world data from registered devices to the blockchain for use in smart contracts with end-to-end trust (whitepaper coming soon).
- IoT Data Dashboards: integration with ThingsBoard, a powerful open source data visualization tool to create your own IoT dashboards. Expect to see beautiful dashboards for IoTeX devices like Pebble Tracker very soon!
- Smart Contract Tools: new and improved IoTeX command-line tool (ioctl) with smart contract deployment capabilities, and planned integrations with smart contract tools like Truffle.
IoTeX Blockchain — Guiding Principles for Design
1) Multi-Purpose & Modular Blockchain
IoTeX is fortunate to regularly discuss all types of privacy and IoT-related use cases with everyone from small developer teams to large enterprises to institutional consortiums. The common denominator is everyone wants access to robust, out-of-the-box core offerings with a high degree of flexibility and customization — a multi-purpose and modular platform. As we shared in our recent Pantheon announcement, IoTeX now offers permissioned and permission-less implementations of the IoTeX protocol, but our future goals as a multi-purpose platform extend much further.
Over two thousand years ago, Aristotle defined a first principle as “the first basis from which a thing is known.” The same applies to IoTeX — through exploring first principles, we have defined the essentials and basic elements of a blockchain system. Turns out we can categorize what almost all blockchains do in a set of modules, as detailed in the following diagram.
Let’s walk through the high-level structure: the Communication module pulls messages (e.g., transactions) from the P2P network and passes the raw materials to Indexers and Validators, who work closely to ingest the information in a trustworthy and reliable way — think of them as data processors, which can be cascaded to form a data pipeline. To bring it full circle, the Minter module creates new blocks based on indexers’ trusted output, while APIs wrap the data from indexers to serve various Dapps.
This highly abstracted view is useful when designing a blockchain. For example, for our public blockchain, the minter implements Roll-DPoS while the validator works based on the states of accounts and blocks. For our consortium blockchain that requires a permissioned environment, the validator will leverage certificate authorities (CA) and certs information while minter may implement various consensus schemes such as Kafka or Raft. It’s worth noting that these components can be eliminated depending on the application. For a blockchain node that only serves applications, the minter and indexers/validators can be eliminated. For a Delegate node that doesn’t serve applications, the APIs may be eliminated. Fit for purpose and modular!
2) The Open/Closed Principle
In object-oriented programming, the open/closed principle is well-known and states “software entities (classes, modules, functions) should be open for extension, but closed for modification”. In other words, an entity can allow its behavior to be extended without modifying its source code.
After identifying the essential components of blockchain at the most abstract level, we began detailed design on each individual and collective component in our own IoTeX way, following the open/closed principle. The result is this beautiful architectural design, which will be instantiated for the first time as part of Mainnet GA v1.0.
Blockchain is an amazing tool to orchestrate other objects while maintaining accounts and private keys in a secure fashion. The IoTeX blockchain has three important objects: BlockDao, BlockValidator, and BlockMinter. (note: in Object Oriented Programming, there are two common relationships between objects: “Is-A” and “Has-A” relationships).
BlockDao, which is an instance of BlockIndexer (think it as a data processor), ingests blocks as the “source-of-truth” and outputs account information. StateFactory, which is also an instance of BlockIndexer, ingests account information and outputs more specific states, such as merkle trees of an account or linked list of balances. We can even hook up other instances of BlockIndexer to BlockDao or StateFactory as needed, to transmit various information to APIs and ultimately applications. For example, to power the IoTeX voting website and Explorer we have plugged in several APUs (action processing units, which are all instances of BlockIndexer) to scrape information from the blockchain, such as total supply, votes, and rewards.
In parallel, StateFactory may also act as an instance of BlockMinter and BlockValidator, which we did not detail for simplicity’s sake. In Pantheon, we plan to implement different Validator/Minters to adapt to unique enterprise setups and support Layer 2 activities. In the future, a Minter and Validator may ingest information from two public blockchains and produce a block to facilitate cross-chain transaction!
The IoTeX platform has reached another critical milestone — fully independent, optimized for IoT, more performant than ever, and re-architected for modularity and developer-friendliness. But the work never stops! It is our goal over the coming years to work directly with builders in an iterative fashion to improve our platform and support a broader and deeper set of applications. With our Mainnet v1.0 already supporting first-of-its-kind devices like Ucam & Pebble Tracker, the future is bright and IoTeX is just getting started.
“Be Radically Open-Minded” — Ray Dalio
This is one of the most important principles from Ray Dalio, which emphasizes that open-mindedness and radical transparency are invaluable for rapid growth and effective change. The IoTeX team practices this principle every day, and we are open to all feedback and suggestions from developers. Together, we can turn our vision for the Internet of Trusted Things into reality.
For more information, please see the official Mainnet GA forum thread.
Founded as an open source platform in 2017, IoTeX is building the Internet of Trusted Things, an open ecosystem where all “things” — humans, machines, businesses, and DApps — can interact with trust and privacy. Backed by a global team of 30+ top research scientists and engineers, IoTeX combines blockchain, secure hardware, and confidential computing to enable next-gen IoT devices, networks, and economies. IoTeX will empower the future decentralized economy by “connecting the physical world, block by block”.