Testnet Preview

Our first code release StoneVan has released on April 20, 2018! Here are the details for your information.

Testnet Preview (StoneVan) Release

Note: We edited the questions and answers for clarity.

Q: Bech32-encoded address, serialization, and decentralization of messages on the wire, Merkle tree, transactions, blocks and chain, transaction pool — how exactly are these features presented and used?

A: These are basic ingredients to make a blockchain secure and scalable. We present a system diagram in the README.md on our Github to explain how we make use of these building blocks at a high level. Please do check it out, and note that we will be explaining more advanced features as part of future code releases.

Q: How and why is Golang better than Solidity and other blockchain-centric programming languages? What are the differences?

A: Golang is a programming language for building blockchains, while Solidity is a programming language used for writing smart contracts running on top of blockchains. To build a public blockchain from scratch, there are various programming languages to choose from. Bitcoin was first built using C/C++, and EOS and Zilliqa use C/C++ as well. Lisk and Crypti are built using Javascript. QRL is built using Python. IoTeX and other blockchain projects such as Decred, Hyperledger/Fabric, Ontology, and others use Golang. We chose Golang primarily because:

  • Compared to C/C++, Golang has a relatively short development cycle, which helps to expedite the realization of the IoTeX protocol.
  • Compared to Python and Javascript, Golang offers better performance, reliability, and concurrency, which are desired features to make the IoTeX network reliable and enhance performance.

Q: When will organizations and individuals be able to create their own “marker”/tokens? How many programming languages can IoTeX support?

A: Organizations and individuals will be able to create their own tokens no sooner than the launch of Testnet Beta in late August. Ideally, IoTeX will make the root chain-subchain protocol language-neutral, meaning one can implement a subchain using one’s favorite programming language.

Q: I read in the whitepaper that IoTeX makes use of BFT to manage denial of service (DOS) attacks, which should reduce evil attacks due to bad actors. Why has IoTeX not made use of DAG?

A: DAG has two forms: block DAG and tangle DAG. We assume you are referring to tangle DAG. Tangle DAG sacrifices global consensus to achieve efficiency (i.e., high throughput and zero transaction fee). Without global consensus, smart contracts become intractable. IoTeX uses R-DPoS which achieves both consensus and efficiency, as we view autonomous device coordination via smart contracts as a core component and design choice of IoTeX.

Q: In the whitepaper, smart homes are pointed out. Will there also be some focus on intelligent transportation, medical care, smart cars, and intelligent factories?

A: Yes! While we are working with vendors and hardware partners on blockchain integration and applications, we also encourage our community to explore these and other various used cases as well.

Q: The Testnet Preview code cannot connect to other nodes, why?

A: As we emphasized in our initial code release and video, the Testnet Preview is only an initial version with limited features, performance, and reliability, and is subject to rapid change. Rather than spend time on setting up P2P connections, we have chosen to focus on delivering a Testnet Alpha with more features, better performance, and reliability.

Q: What will be the ways (if any) to mine IoTeX? Are there supernodes? Is it only a POS system or there will also be a PoW miner?

A: IoTeX uses R-DPoS, which means there will be delegates or so-called “supernodes” (elected in a more democratic way, see our yellow paper) that mine IoTeX blockchains.

Q: I saw the demo in the video released and to be honest I am not impressed, this is just a demo of a normal blockchain? What is new? I was expecting an end-to-end use case between, for example, a car and a garage door.

A: As we emphasized in our video, this initial code release is simply a preview of Testnet, which serves as a baseline implementation that we will iterate on going forward. Before demonstrating a really cool DApp/use case running on IoTeX blockchains, we need to first build a fast and reliable consensus scheme and efficient cross cross-chain communication. These are major challenges, which are keeping both our research and engineering teams busy at the moment. That being said, we would love for the community to hook up IoT devices to the IoTeX blockchain in creative ways and demonstrate it to us!

Q: It looks very similar to Hyperledger from IBM .

A: Good catch :slight_smile: There are two aspects of our protocol that may have led to the conclusion that IoTeX is similar to Hyperledger:

  • They are both written in Golang! Please refer to the previous question about why we chose Golang.
  • They both use PBFT, but in very different ways. As a consortium blockchain, Hyperledger usually works in a non-hostile environment so it has relatively simple requirements for a consensus scheme — PBFT, Raft, and Paxos are all great candidates. As a public blockchain, IoTeX works in a hostile/Byzantine environment that requires a much more complicated consensus scheme, which is R-DPoS. R-DPoS treats PBFT as a building block to achieve instant finality, but it is much for far-reaching than that. Please read our yellow paper that explains this in further detail.