IoTeX Testnet Beta (Epik) Release

IoTeX
IoTeX
Aug 30, 2018 · 10 min read

Hello IoTeX community! Since our Testnet Alpha code release in June, the IoTeX team has been working around the clock on technical development, strategic partnerships, and community. In August, we officially launched the IoTeX Partnerships Program and website, and unveiled seven amazing strategic partners to date. We also brought on new top tier engineers to join our team and had the pleasure of sharing IoTeX’s vision at conferences and meetups around the world. Most importantly, we made great progress on our technical development. Today, we are excited launch our third code release: Testnet Beta — “Epik”!

You can see the open source code on our Github now:

Detailed instructions for running the Epik code are provided in this README file, and a detailed demo video can also be found here.

Why “Epik”? — Rob Pike

Pike is best known for his contribution to programming languages, graphical terminals, patents, many text editors, and more. The IoTeX blockchain is coded in Golang, which Pike co-created, due to its ease of deployment, concurrency features, focus on scalability, and more. Codenaming this release “Epik” is a tribute to Pike’s innovations, which provide the building blocks for IoTeX and developers all around the world to innovate today.

Epik Overview & Features

Over the past two months, we greatly enhanced the existing code base and also developed several new, exciting features for Epik, focused on bringing usability and tangibility to the IoTeX Testnet. Some of the key features of Epik include:

  • Support of Ethereum Virtual Machine (EVM) and smart contracts
  • IoTeX Wallet implementation
  • Roll-DPoS consensus and simulation enhancements
  • BLS signature and DKG (Dual Key Generation) implementation
  • Work-preserving upgrades
  • Support of 100+ physically distributed nodes

In addition to adding new features, we also executed multiple code reviews (i.e., “quality weeks”) focused on enhancing the performance and stability of the existing code base. Among other benefits, these code reviews led to improved database performance by ~10x and allowed us to consistently support 100+ instant-finalized transactions per second (IFTPS) on our Testnet. The table below provides an overview of the performance enhancements and new features of Epik:

Epik: A Tangible and Usable Testnet

IoTeX is a platform that provides infrastructure and tools for IoT companies and developers to build revolutionary new IoT DApps. To achieve this, our in-house innovations focus on bringing security, scalability, interoperability, and privacy to IoTeX. However, for IoTeX to reach its full potential, we must also ensure that usability is prioritized, as it serves as the bridge between users, developers, and IoTeX. This is why we prioritized the implementation of smart contracts and the IoTeX Wallet in Epik. For both technical and non-technical users, Epik offers the chance to send transactions and execute smart contracts in our Testnet, allowing IoTeX to begin gathering feedback on usability features that are crucial to the developer experience.

EIOTX test tokens, IoTeX Wallet, & Smart Contracts

EIOTX test tokens

  • EIOTX Token (Testnet): Test token usable only in the Epik Testnet. It does not have any monetary value and will not be tradeable on any exchanges.
  • IOTX Token (Pre-Mainnet): ERC-20 token currently trading on exchanges, which will be converted to the native IoTeX token after the IoTeX Mainnet launch in Q1 2019.
  • IoTeX Mainnet Token (Mainnet): This will be the native utility token of the IoTeX network, which will be tradeable and mineable upon launch of the Mainnet in Q1 2019.

IoTeX Wallet

IoTeX Wallet Dashboard

In the future, the IoTeX Wallet will be responsible for holding all native Mainnet tokens. In addition, any tokens launched on the IoTeX network will also be natively supported by the IoTeX Wallet, similar to how any ERC-20 tokens can be stored in an Ethereum wallet.

There are three main functions in Epik that users can explore using the EIOTX token and IoTeX Wallet: sending tokens, voting for delegates, and deploying smart contracts, which we review in the following sub-sections. For a full walkthrough demo of the these three functions, please see our Testnet Beta demo video .

Sending EIOTX Tokens and Voting for Candidates

Send EIOTX tokens interface
Vote for delegates interface

Smart Contracts

In Testnet Beta, we add support of Solidity-based smart contracts and the Ethereum Virtual Machine (EVM). The EVM is a decentralized environment that executes “bytecode”, which is compiled from higher-level programming languages, such as Solidity. In the future, we plan to support additional virtual machines (e.g., WASM) and will develop our own virtual machine that fits into IoT scenarios. Smart contracts have the ability to automate complex, multi-party workflows (e.g., supply chain) without a middleman, while transparently recording transaction history on the blockchain. This is a huge opportunity for IoT — decentralized autonomous organizations (DAOs), which are blockchain ecosystems that operate autonomously under a set of smart contracts, can be created to orchestrate heterogeneous devices and create precise, humanless workflows.

In the IoTeX Testnet, users can explore two actions related to smart contracts: “deploy smart contract” and “interact with smart contract”, which are provided on the smart contract tab page.

Smart contracts overview

To execute a smart contract on the IoTeX Testnet, you must first register the contract to the EVM by deploying the contract. As shown below, users can enter Solidity-based smart contract code and generate an Application Binary Interface (ABI) / JSON interface and byte code, which should be recorded to execute the smart contract later. The smart contract can then be deployed to the EVM, and a contract address will be created, which is unique to a specific wallet and smart contract pair.

Here is a sample Solidity-based smart contract code for you to test:

Deploy Smart Contracts:

Deploy smart contracts interface

Once the smart contract is deployed and registered to the EVM, users can interact with the smart contract and call functions that are built-in to the smart contract. Various smart contracts differ across the number, purpose, and complexity of functions. There are two types of functions:

  • Write functions: triggers a state change on the blockchain (e.g., value transfer, computations, calls to other contracts). Requires gas, as operations executed in the EVM are simultaneously executed by every node in the network, and one or more user inputs define how the contract will be executed.
  • Read functions: fetches a data point from the blockchain, without triggering a state change. Does not require gas, as no computation is required to read data. No user inputs are required for read functions.

Interact with Smart Contracts:

Interact with smart contracts interface

Please note that it is still the very first version of our wallet and we will keep improving it. If you encountered any programs, feel free to report here

Epik is Amazing — What’s Next?

Besides working on Testnet Stable/Mainnet Preview, we are also excited to collaborate with our strategic partners to build proofs of concept, launch pilot subchains, and develop new capabilities for the IoTeX ecosystem. Before the public launch of our Mainnet in Q1 2019, we will also release several research papers on our in-house innovations and share details regarding staking requirements, governance, and more. Be sure to follow our official channels to stay in the loop! We look forward to sharing more of our growth and achieving bigger and better milestones very soon.

Code Contributions — We Want Your Help!

To learn more about IoTeX or to discuss technical aspects of our project, feel free to connect with us through any of our official channels below:

Website: https://iotex.io/
Twitter:
https://twitter.com/iotex_io
Telegram Announcement Channel:
https://t.me/iotexchannel
Telegram Group:
https://t.me/IoTeXGroup
Medium:
https://medium.com/@iotex
Reddit:
https://www.reddit.com/r/IoTeX/
Join us:
https://iotex.io/careers

About IoTeX

@iotex

Building the Internet of Trusted Things

IoTeX

Written by

IoTeX

Building the Internet of Trusted Things: iotex.io

@iotex

@iotex

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.

IoTeX

Written by

IoTeX

Building the Internet of Trusted Things: iotex.io

@iotex

@iotex

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.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store