Wednesday, January 23, 2019

Week 04: Komodo's Tech Tuesday.

Share
Share
Tweet
Read Later
Forward

Tech Tuesday

If this is the first time you're reading our newsletter you can subscribe here and guarantee you don't miss out on important news.

 Week 04 


Cryptocurrency Will, Inheritance & Blockchain Heirs

The prerequisites for any blockchain built with komodo's blockchain tech stack that wants to utilize a crypto inheritance plan is:

One of the biggest problems with cryptocurrency estates is how to reliably & in a timely process, provide a trustless validation for cryptocurrency wills.

The current development cycle of crypto conditions blockchain consensus is a solution.  It is usable for KMD, any token created on the KMD platform & any gateway/anchor coin that can be used on the KMD platform – BTC, LTC, ZEC etc.

Development of this solution has been stubbed out and supervised by komodo lead dev jl777 with the implementation details being carried out by @dimxy (whom parts of the following paragraphs are from).  Where it says "1of2" refers to multi-signature address, and only limited to 1of2 during current development cycle.

A special 1of2 CC address is used, that is, one key of two is able to spend funds. This 1of2 address is funded and freely spendable by the funds creator (owner). The owner may add additional funds to the 1of2 address.

Also worth noting is that more keys/addresses can be used for multiple heirs, for now, this iteration of development is concentrating on getting the workflow valid.

The heir is only allowed to spend after the specified by funds owner inactivity time has been passed. This means is that if the owner address doesn't spend any funds for some period, then it is time to allow the heir to spend fund from that 1of2 address. After the inactivity time has passed both the heir and owner may freely spend available funds. This is achieved after the first heir spending, a special flag is set depicting that spending is allowed for the heir from now on, whether the owner adds more funds or spends them.

Testing and questions can be asked in the discord #cc-heir or #cc-general channels.
 

Dynamic Loadable Library As Blockchain Consensus

A new development update to jl777 branch that supports -ac_cclib=<name> allows devs to make changes to a single file cclib.cpp and define a user defined CC that uses dynamic libraries so no need to even recompile komodod.

This enables a separation of a user defined CC from komodod, yet it is part of komodod at runtime.

For now, you need to go into src/cc dir and run ./makecclib to make the src/cclib.so file that will be searched for the -ac_cclib=<name>.  Some conventions exist in the naming – and for direction on how to build, developers are encouraged to go to discord #cc-general or #cc-lib channels for latest information.

The name specified in -ac_cclib must match the name inside cclib.cpp

There is a CClib_Dispatch function that is called for evalcodes 0x10 to 0x7f (reserved for user defined CC) – enough space from id 16 (0x10) through to 127 (0x7f) for user defined conditions to augment their blockchain's consensus with any possible feature that can be considered in a transaction process (e.g. any computation) – something as simple as checking a website is up or as complex as a set of derivatives trades based on a price feed oracle.

cclib.cpp is compiled with same include files as main daemon, so has access to all the functions.

CClib_methods =    {       { (char *)"faucet2_fund", (char *)"amount", 1, 1, 'F' },       { (char *)"faucet2_get", (char *)"<no args>", 0, 0, 'G' },    };    ->    ./komodo-cli -ac_name=CLIB cclibinfo    {     "result": "success",     "CClib": "faucet2",     "methods": [       {         "funcid": "F",         "name": "faucet2_fund",         "help": "amount",         "params_required": 1,         "params_max": 1       },       {         "funcid": "G",         "name": "faucet2_get",         "help": "<no args>",         "params_required": 0,         "params_max": 0       }     ]    }  

Golang & Rust Community Libraries Continue Development

Progress continues on the following community developed libraries for Rust and Go languages.

Rust is only the second ever language that has been added to web browsers in 20 years and Go is a versatile system and full stack language offering speed and multi-platform use.

Other community projects are being worked on in javascript and python.   Updates to come in following weeks.
 

Convert Pubkey To Komodo Address

Throughout the Komodo ecosystem there are times a devops person needs to use a transparent address, sometimes a pubkey for starting a chain and for various utility programs that exist or help with a workflow in any language.

If you haven't ever looked at the versatility of a Komodo Paper Wallet Generator you will be pleasantly surprised how many coins it supplies addresses for.  Much like the Iguana multi-coin wallet that started life as a bitcoin implementation in C and acts as the backend for BarterDEX, Komodo's interoperability is part of the development culture.

A simple python script is available for a pubkey to komodo address conversion in the doc handbooks.

https://docs.komodoplatform.com/komodo/convert-pubkey-address.html

Past Issues of Tech Tuesday
GitHub
Facebook
Medium
Reddit
Twitter
YouTube
Email
Website
Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.