Welcome to our Monthly Tech Update, where we share the tech-related initiatives that IoTeX core-dev are currently working on and why it matters for the IoTeX Network.
October 15, 2020
The IoTeX core protocol Mainnet v1.1 was rolled out to production in August and has been steadily improving in the past few weeks, including:
- Correct readStateTotalStakingAmount and other read state API
- Add TransactionLog to capture all asset-transferring tx (#2341)
- Refactor Blockchain.commitBlock (#2332)
- Add test account with initial balance in standalone mode (#2381)
- GetAccount return IsContract field (#2426)
Two significant improvements worth calling out are:
- Multi channels for blockSyncMsg (#2411) – this mitigates an issue we identified where some attacking nodes asked peers for block confirmations and block the message processing pipeline for helping nodes, putting them into probation. This fix has been addressed in Mainnet v1.1.1 (out now!) to thoroughly address this issue and mitigate future similar attacks.
- Data storage optimization - this feature is under final testing/validation in our nightly clusters, and will be included in Mainnet v1.1.2 (coming soon!). This feature supports splitting the monothlitic file that stores all blocks into multiple files and having them compressed, which saves 30+% storage space to further drive down Delegate operational costs as well as support easier backup/restores of block data.
In other protocol-related news, ioctl (IoTeX command line tool) has been published to homebrew (https://brew.sh/) – the best package manager available on almost every MacOS computer. Also, new features have been added to ioctl to interact easier and deeper with the IoTeX blockchain:
bc bucketlistcommand to show buckets tied to a specific voter or address
- bc bucket count/max
action deploy/invokeis now deprecated in favor of
- make local dir/files work with IoTeX Studio (https://ide.iotex.io)
ioPay, ioTube, iotexscan, Hermes, and More!
We are really excited with the progress of our ecosystem products and tools – not only have we introduced new tools, but have significantly improved our existing tools. Some highlights to share:
- IoTube: a new cross-chain interoperability bridge to bring data/tokens from Ethereum to IoTeX and vice versa
- mimo: a new decentralized exchange (DEX) that supports trading of IoTeX (XRC20) and Ethereum (ERC20) cross-chain pairs
- ioPay: the official wallet of the IoTeX Network has had massive improvements on UI/UX, improved transfer experiences for XRC20/XRC721 tokens, and now supports several dApps built by the community
- iotexscan: the official IoTeX explorer now supports XRC20 profile pages and upgraded backend to support advanced analytics
- Hermes: our automatic rewards distribution system now supports direct deposits of staking rewards to buckets for maximizing compound interest for voters
- Travel Cat: an addictingly fun decentralized game on IoTeX with IOTX/VITA fully integrated
Ucam and Burn-Drop
Ucam has been listed on Amazon.com on September 29 and now has mainstream and crypto users from around the world (the numbers are keep increasing every minute!). Initial feedback from the market has been great and we are planning for an exciting holiday sales season. On the tech side, we are working with the IPFS/Filecoin team to integrate decentralized storage into Ucam, building off of our initial use case for over-the-air (OTA) firmware updates.
Burn-Drop IGNITE has a steadily growing userbase with 3,661 buckets and 1.1 Billion IOTX staked. Over the past two months, more than 16 Million IOTX has dropped to Burn-Drop eligible users! But IGNITE is just the warmup – the official Burn-Drop launch getting closer, all tokenomics described here will be implemented and activated. Ucams are coming with NFTs and we expect new campaigns around them too.
July 27, 2020
Welcome to our Tech & Dev Update, where we share the tech-related initiatives that core-dev are currently working on and why it matters for the IoTeX Network. Over the past few weeks, core-dev has focused on:
New Features for iotex-core v1.1
iotex-core v1.0 was released as the Generally Available (GA) release of the IoTeX Mainnet – a huge milestone! But the work never stops and our protocol is constantly improving. The core-dev team planned 3 critical features for iotex-core v1.1 which will be rolled out to production in early August:
- Reclaim Bucket – hardware wallet users (i.e., Ledger, Trezor) that did not map their IOTX-E (ERC20) to a native IOTX address cannot access their staking buckets via Native Staking v2 after Mainnet GA. We designed and implemented a reclaim flow to help this group of users to reclaim their buckets from their inaccessible accounts – the user signs a validation message using their ETH Ledger app, submits this signed message to the IoTeX blockchain via a new native action, and the protocol will verify and assign the bucket to its specified address if it sees a bucket that is reclaimable (i.e., in the corresponding IoTeX address of your ETH Ledger address; the two accounts share the same private key).
- Unification of indexed metadata – when an action is minted into a block, its metadata is indexed and stored in a local database on the fullnode and served via API. Previously such metadata was indexed by different indexers internally and stored differently which introduces complexities as the number of action types increases. That’s why we performed this optimization to unify such metadata.
- Rosetta integration – Rosetta developed by Coinbase, is an open-source specification and set of tools that makes integrating blockchains with exchanges and other infrastructure simpler, faster, and reliable. We are working with Coinbase’s relevant teams to integrate IoTeX blockchain with Rosetta – the initial implementation is complete and we are working to improve it steadily.
Burn-Drop Ignite will be on July 31st, 2020 and we have completed the initial implementation of a decentralized autonomous network (DAO) running on the IoTeX blockchain, as well as an off-chain service to issue verifiable credentials (VCs). Our decentralized identity (DID) service has been spun up and integrated with Universal Resolver. We are getting ready to activate the first Powered-by-IoTeX devices via DIDs for devices – the Internet of Trusted Things is close!
ioPay Mobile Consistently Growing
It has been great to see the evolution of ioPay Mobile – the number of daily active users of ioPay mobile keeps increasing with over ~500 just in the past few days. In addition to addressing some performance issues (e.g., slow access in certain regions), nsv2 is now natively supported by ioPay for users to enjoy a lightning fast and fun interaction with our chain. On the side, exciting #DeFIoT projects and a stable coin are coming to the IoTeX Network soon and will also be integrated with ioPay.
Ucam and Pebble Tracker
While the Product team is fine-tuning Ucam (e.g., color, sound) to make sure users have the best experience, our manufacturer is preparing for mass production and shipping. We are consistently giving out Ucams to industrial leaders in IoT and crypto spaces to get their feedback, e.g., @aphelionz, the VP of @equilibrium_co loves Ucam and is trying to develop an IPFS client running on top of Ucam. What is so exciting about Ucam is it is a vehicle for innovative data + privacy use cases – we can’t wait to show you what we are working on behind-the-scenes.
Pebble Tracker is also making amazing progress in the past weeks – the hardware changes have been materialized and the development of a new trusted edge computing framework is at the finish line. In addition to the hardware itself, we will be sharing blockchain-based data visualization, authorization, and sharing tools, as well as detailed technical papers related to the blockchain/cloud backend to both crypto and IoT communities. Stay tuned!
May 4, 2020
Welcome to our Tech & Dev Update, where we share what tech-related initiatives the IoTeX Foundation (core-dev) are currently working on and why it matters for the IoTeX Network. Over the past two weeks, core-dev has focused on:
Rolling Out Mainnet v0.11
In the past two weeks, we have been working closely with our global Delegates to roll out Mainnet v0.11. The rollout was pretty smooth except for a few Delegates who turned on API service and spent hours on reindexing due to an optimization we have. This code release’s primary new feature – probation for unresponsive delegates – is now live as of height 4,479,481 on April 22, which concludes another successful deployment of upgrades to the IoTeX Layer 1 protocol!
Preparing Release of Mainnet GA v1.0
Now that Mainnet v0.11 is out of the door, the team has been focused solely on Mainnet GA v1.0, which will come with a big new feature – Native Staking v2 (nsv2) – which will establish full independence from Ethereum. A fully native IoTeX blockchain is coming! There are two aspects of nsv2 that the team spent a lot of effort to make sure run correctly and efficiently under all circumstances:
- Native staking and voting: this went through a series of functional tests and load tests. We are also actively iterating on new tools to facilitate voting on member.iotex.io
- Migration of ETH stake/votes to IoTeX: this process involves cutting over all information on Ethereum to IoTeX; we cannot tolerate any mistakes! The basic idea is to collect staking and voting information from Ethereum contracts and nsv1 contracts, together with select information from Delegates, and inject the data into the IoTeX Blockchain before nsv2 kickoff. All the necessary tools and scripts have been developed and we are now conducting a series of dry-runs to aggregate all information (from prod) and test the migration process in our nightly blockchain pipeline. Looking good so far!
Next week, we are going to conclude the above two tasks and cut Mainnet GA v1.0, push it to our nightly pipeline, and then Testnet. If everything goes well, we will work with our Delegates to push to the Mainnet, after which we will have established independence from Ethereum. Exciting stuff! For more information, check out our Mainnet GA Migration Plan thread on the IoTeX Forum.
Ucam Beta Testing
As our first go-to-market product, Ucam packages many components of IoTeX technology – blockchain, decentralized identity, and decentralized storage, which we are working on with the IPFS team. After a long journey, we are getting close to the finish line. Over the past two weeks, we expanded our beta-testing program in Silicon Valley to ~100 homeowners. Many of them are impressed by the quality and convenience of Ucam and love the concept of #OwnYourData. Most importantly, all of them had constructive feedback that we have applied to make Ucam even better. Check out our new Ucam update for more details.
Other Ongoing Initiatives
Additionally, we have finished drafting the proposal to fine-tune our Roll-DPoS economics with the goal of making staking/voting more fair and efficient for Delegates, while encouraging the growth of the Delegate population. The actual implementation will be deferred to after Mainnet GA – we will seek feedback from Delegates in the meantime.
Also coming with the release of Mainnet GA v1.0, we have re-architected and re-factored iotex-core a lot with the goal to make iotex-core more efficient for delegates (e.g., even lower hardware cost), reliable regardless of the network situations and sustainable as we foresee a spike of transactions coming after Ucam launch. We will prepare a blog post talking about architecture v2 in the next few weeks. Stay tuned.
On the hiring side, while looking for more technical talents admin COVIN-19 and lockdown in California, we have onboard one full-stack engineer who is strong in solidity/blockchain in addition to other frontend technologies, who will help us to drive initiatives around trusted data and the DApps around it. We are actively interviewing candidates for our digital marketing positions as well. If you are interested, please drop me a line at [email protected].
April 17, 2020
Welcome to the Bi-monthly IoTeX Tech Update, where we share what tech-related initiatives the IoTeX Foundation (core-dev) is currently working on and why it matters for the IoTeX Network. Over the past two weeks, core-dev has focused on Delegate probation implementation, Native Staking v2 (nsv2), Ucam beta testing, and IoTeX 2.0 planning.
1. Enable probation for unresponsive Delegates
Stemming from a community-wide vote in March, core-dev has implemented Delegate probation in the latest Mainnet v0.11.1 code release. The frontend and backend have now both been implemented and thoroughly tested with load. Ready to launch!
Community Proposal #3 was passed in March
This release will be pushed to production on April 22. Delegates must upgrade their nodes following the instructions here, otherwise they will not be able to produce blocks (and will be put on probation!). Our new one-liner upgrader is a simple tool to automate node upgrades. Once v0.11.1 is activated on mainnet, unresponsive delegates will be put on temporary probation – great incentive to not miss blocks!
2. Implementation of Native Staking v2 (nsv2)
We are proud to announce the backend for nsv2 is complete and we are now moving into the testing stage, which is composed of unit tests, integration tests, e2e tests and load tests, and pushing to our nightly pipeline. With these tests all done, we will push this nsv2 to testnet and bake it there for a while. The frontend design of nsv2 is almost there – our engineers are working hard and things are in great shape as of now!
Throughout the development of our new native staking mechanism, we had many interesting discussions about PoS/DPoS and staking – here we share two insights for the community:
- In nsv2, voting buckets will be transferable. This opens up interesting engagement models, such as lending/borrowing, collateralization, and trading of buckets. We’re interested to see what you do with this new flexibility! The downside of transferability is potential impacts on-chain security – for example, an attacker may attack-and-sell-buckets to not get slashed. This problem exists for all “soft-staked” coins, where “soft-staking” is a service provided by central exchanges to attract users with both liquidity and staking rewards. To mitigate, it is likely we will limit the frequency of bucket transfers to sacrifice liquidity for security.
- We have had intensive discussions regarding the concept of “staking capacity” – this is a concept introduced by Tezos such that the amount of votes a Delegate can receive is a function of their self-stake (“throttled”). While this makes Delegates more accountable to receive more votes, it also raises the bar for community-based Delegates to grow. This is analogous to Keynes vs Hayek argument – two world-class economists holding exactly opposite views when it came to the role of government (or regulation) in the economy. Hayek viewed the market as capable of correcting itself, (e.g., an unaccountable delegate will lose votes eventually), while Keynes believed that the government (e.g., staking capacity) should play a greater role. After many rounds of discussions, we decided not to pursue the “invisible hand” in the short-term – aka we will not apply staking capacity for now.
3. Ucam beta testing
Ucam is quite close to the finish line and we are going to ship the first batch of pre-orders next week! Over the past weeks, the firmware, backend, and mobile app have all been improved based on feedback from our initial round of beta testers. Now, we are putting Ucam in the hands of the IoTeX community and we can’t wait! Based on your feedback, Ucam will have a final round of (minor and cosmetic) updates before debuting on top e-commerce platforms in May/June. The tokenomics that tie Ucam and future “Powered by IoTeX” to the IOTX token will be announced in May before Mainnet GA.
4. Global Delegate Sync
Finally, we had a successful Delegate Sync call on April 17th with almost all Delegates in attendance, who gave us many nice suggestions and feedback regarding enhancements to the Delegates Program. Much appreciated as always! The presentation deck can be accessed at http://t.iotex.me/dc-0417. We look forward to seeing many more of you developers become Delegates in the near future!
April 3, 2020
Q1 2020 Tech Summary
The core-dev has been focusing primarily on two initiatives:
- Enable probation for unresponsive Delegates
- Implementation of Native Staking version 2 (nsv2)
The probation of unresponsive delegates is a critical feature for the protocol’s reliability and scalability. As recently voted by the community proposal, core-dev has quickly moved to implementation and testing and will be deployed to testnet very soon. Read more
Implementation of a new transaction-based native staking mechanism. One major part of Mainnet GA is establishing independence from Ethereum by migrating all stakes/votes on Ethereum to IoTeX. In parallel, we are designing a new transaction-based native staking mechanism that will be much more scalable than the current smart contract-based mechanism. A faster, more secure, and finally independent IoTeX network is coming soon!
Along with our blockchain efforts, our product team is iterating on Ucam firmware, backend, and the iOS/Android apps. We are making great technical progress on Ucam, which will enable data ownership, privacy, and peace of mind for users around the world.
The Ucam app is being beta tested by the entire IoTeX team and select pre-order participants – we can’t wait for you to see how sleek and usable it is! We are actively working on the future crypto-economics of the IoTeX Network, which will introduce the economic models blending devices like Ucam with the IOTX token.