The next gen colored coin client

killerstorm edited this page Jun 24, 2013 · 3 revisions

Features

Existing colored coin clients: WebcoinX, ArmoryX, bitpaint.py.

We need to develop a new one which:

  • will be flexible and versatile
  • can work in stand-alone configuration, but also can be sped up with help of 'server'
  • provide an API for other applications to connect to, or work as a library
  • (relatively) high performance
  • stable, safe, secure
  • (relatively) low overhead (compared to Armory which requires gigabytes of RAM)

General approach

There are several possible software platforms we can use:

  • modification of bitcoind
  • a stand-alone wallet which will connect to bitcoind (preferrably C++ or Python)
  • C++ library which can be used either by standalone client or integrated into existing one

Components

If we are going to develop a stand-alone application, it would have following components (approximately):

  1. [colored coin store](NGCCC colored coin store): keep information about colored transaction outputs
  2. [transaction representation, parsing](NGCCC transactions)
  3. [interactions with bitcoind](NGCCC bitcond access)
  4. [coloring kernel](NGCCC coloring kernels)
  5. [import/verification](NGCCC import) (when you download history from external source, we need to run verification and fill our colored coin store)
  6. [high-level coloring logic](NGCCC coloring logic): maintain the state, get info about new transactions, etc.
  7. [wallet](NGCCC wallet)
  8. [API](NGCCC API)
  9. [color definition management](NGCCC colordef management)
  10. [GUI](NGCCC GUI)
  11. [p2p trade](NGCCC p2ptrade)