KMDLabs

How KMDLabs Works

KMDLabs is a testing and development platform suitable for research on many scales.  From gaining experience using Crypto-Conditions contracts to debugging multi-contract clusters, KMDLabs provides you with the tools, platform and resources to do so.  This allows you to spend your time on testing, not setup.

The final version of this page is under discussion and modification while the finer details of suggested procedures are determined.  You are welcome to join these discussions and add your thoughts.

Discord:  https://discordapp.com/channels/412898016371015680/497080413387489291
KMDLabs pad: Please ask in Discord

This page is very much under construction but the following image should give a basic idea the KMDLabs flow.  The details are in a state of flux but the general procedure shouldn’t change to a large extent.

Suggestions and feedback are very welcome.

How to Create a Chain

Step 1
Create a well commented CC contract or modify an existing one’s functionality.
 
Step 2
Very simple testing done on non-LABS testing chains. This testing period can be used for fixing any very obvious bugs. These chains can hardfork as much as necessary. These chains are not CFEK or LABS chains. They are not notarized.
 
Step 3
PR the code to the KMDLabs repo. Detail and discuss the purpose and implementation in PR comments. Wait until it is merged.
 
Step 4
Start a CFEK chain. This chain’s emissions can be anything. It does not have to match the emissions of the planned LABS chain. If the contract being tested relies on coins from the coinbase transaction, these coins will need to be burned on the main chain.
 
Step 5
Prove that you are capable of maintaining the CFEK chain. This means you keep it from stalling, and that you fix any bugs in a timely matter.
 
Step 6
Create the LABS chain. This must be staked with at least 2000 LABS to keep the chain from stalling. A chain might run with <2000 coins, but it would be susceptible to chain stalls if UTXOs are not distributed efficiently. You must have the minsigs # of notaries willing to notarize this chain for the ac_notarypay price.
 
Once you are sure you have enough notaries willing to notarize the chain. Burn the block 1 coinbase amount. Please note this number will differ from the ac_supply amount. Use the getnotarysendmany command to distribute 5 LABS per notary*.
 
To continue paying notaries  the “burn address” on the chain must be funded. This has been created in a way that allows the chain to extended the period of notarization, rather have a fixed notarization lifespan. Coins can be migrated to and from other chains throughout the cluster and sent to the burn address as required.
 
To check the notarization funds balance the getnotarypayinfo RPC can be used.
 
* current at the time of writing. Please check in Discord whether this has changed.
 
Step 7
Notaries sync the chain and begin notarizing.
 

The Testing Process

Step 8
Testers can now sync the chain and transfer coins to it from another LABS chain. Testers should be aware that coins could be stolen, lost or burned due to a faulty CC. As testing is done, testers can begin to rely on a CC for larger and larger amounts of coins.
 
Step 9
If coins are stolen, lost or burned due to a bug in the CC, the tester can make a bounty claim to the notary nodes. If a tester can steal, lose or burn coins due to a bug, the tester can make a bounty claim to the notary nodes. Whether the bounty is paid out is at the discretion of the notary node vote.
 
Notaries must be able to determine if a bounty is fair or if it is not. If the notary nodes determine it is not fair, the tester can create a new bounty claim based on feedback from the notaries. This amount is limited to 0.5%* of the weekly emissions. This amount does not carry over from week to week. If the limit is not reached for a given week, these coins simply never come into existence.
 
* current at the time of writing. Please check in Discord whether this has changed.
 
Step 10
The tester will now need to work the the contract dev and the community to fix this bug. The bounty will not be paid until the bug fix is implemented into the chain. This process will involve repeating steps 1-4 until a bug fix is ready for the LABS network.
 
Step 11

Bounty is paid 🙂 repeat steps 8-11.

Technical

Learn the technical aspects of KMDLabs ans the LABS coin. Useful information for mining and staking and also on KMDLabs procedure relating to Notary Nodes.

Main Cluster

The KMDLabs main cluster is where the bulk of testing occurs. The KMDLabs blockchain is the center of a fungible grouping of independent blockchains. New chains are added as needed and you can add your own chains to perform tests.

"They have extended their hands to help other community projects without conditions. Like KMDICE, they helped us get KMDICE to a very efficient state when we first started the chain. KMDLabs has a lot of future for sure."
"So much cool stuff going on in here!"