This development update is packed with exciting news for the Thaler Testnet:
- Public testnet upgrade with Validator Node available now
- New binary release(s);
- Library for Node.js;
- Incentive mechanisms for permissionless multi-party operations;
Public Testnet Upgrade
All the mentioned changes in the binary releases have been deployed to the public testnet. Note that as many functionalities and formats have radically changed since the initial version, there is no backwards-compatibility with the earlier public testnet network. If you participated in the earlier public testnet, note that its nodes have been decommissioned.
You can read full instructions on how to setup a full node (non-validator) or a Council Node (validator) in our technical documentation. The blockchain explorer also shows information related to current Council Nodes on the testnet.
As before, we welcome our community to participate in the public testnet. In case you spot a bug, please report via the mechanism below:
- If the bug is related to security, please read our disclosure policy. Your can read more details on our HackerOne campaign page;
- If the bug is not related to security, please open an issue on GitHub.
New Binary Releases
Since the early alpha release of the Thaler Testnet, we have been working on new features and bug fixes (mentioned in the previous dev update). Continuous development has culminated in new binary releases (version 0.2), highlights below:
- Incentive mechanisms, such as punishments and rewards, for network operators (council nodes). See below for more info;
- Dynamic council node set: network operators could leave or join the network (in initial version, this was fixed at genesis time);
- Initial flows for TEE-enforced transaction data confidentiality: despite some missing pieces, the initial flows allow testing a few critical elements, such as remote attestation;
- Other wallet-related improvements: support for new transaction types, HD wallet creation and recovery, light client verification, passphrase strength checking etc.,.
You can find more details in the changelog.
In order to help future wallet and exchange integrations, our new ecosystem team has been working on a library for Node.js. The work on this library is still in progress, but you can expect it to facilitate common functionalities needed by cryptocurrency wallets, such as managing keys and their respective addresses or creating transactions.
Initial Incentive Mechanism Design and Implementation
As an open network, Crypto.com Chain aims to encourage and facilitate other parties to get involved in network operations (without necessarily requiring legal agreements with Crypto.com). To that end, we are building Chain with the following goals in mind (as a complement to technical goals such as the ease of implementation or configurability):
- Performance: Council Node operators should maintain adequate infrastructure such that high quality of service on the network is ensured;
- Robustness: Council Node operators should operate in diverse settings, such that the network remains secure and operational regardless of individual cloud or housing data center downtimes and breaches;
- Sustainability: it should be attractive for Council Node operators to sustain participating in the operation of the network in the long term.
To achieve these goals, we designed and implemented several mechanisms:
- Dependent on how much Council Nodes have staked, periodic rewards are emitted from a capped coin pool (expected to be funded by the CRO token pool for network launch and long-term incentives);
- If long downtimes or infractions happen (such as an operator intentionally or unintentionally signs two different blocks at the same height), then the involved council nodes would temporarily lose the ability to participate in the operation of the network, and hence would not receive rewards (i.e., “jailed” on the network). In addition, the involved nodes would lose a portion of their deposited coins (i.e., “slashed” by the network);
- The amount of lost coins is proportional to the number of nodes that are faulty at the same time. This is to encourage robustness. For example, if operators have multiple nodes in the same data center with a long downtime, they lose more coins than if they had nodes in different data centers.
You can find more details in our technical documentation.
Coming Up Next
The year 2020 is going to be very exciting for the development of Crypto.com Chain and we have a lot to look forward to in the next development updates. We would like to highlight two items:
- As mentioned in the limitations of our current binary release, there are missing pieces regarding TEE-enforced transaction data confidentiality. We have drafted an initial implementation plan, and will share updates once the plan has gone through more scrutiny and more components are added & implemented (such as UTXO commitments).
- Starting with the Node.js library, the Crypto.com Chain Ecosystem will keep expanding, and we plan to support more programming languages to help bring together parts that are needed for a mature cryptocurrency ecosystem.
If you are interested in contributing to Crypto.com Chain ecosystem projects, feel free to reach out to us on Gitter. We look forward to an exciting and fruitful 2020, thanks again for your support!