Pages:
Author

Topic: ChromaWallet (colored coins): issue and trade private currencies/stocks/bonds/.. - page 17. (Read 96894 times)

legendary
Activity: 1666
Merit: 1010
he who has the gold makes the rules
dumb question...

how would one go about creating a colored coin?

i want to create a colored coin for my company FakeCo for my thesis and give it away to study how it spreads (FakeCo would also have fake PR and fake earnings announcements, etc)

Well, if it's all fake, I guess testnet will suite you... The difference is that testnet coins do not cost anything and can be obtained from a faucet; also someone can easily do 51% attack (to double-spend, for example). The advantage of using testnet is that our software is too slow to run on mainnet atm.

So there are three options:

  • ArmoryX: I have no idea if it still can be used on testnet (as it requires old version of bitcoind), but maybe it does. ArmoryX is fairly mature in terms of functionality. (Particularly, p2p trade works.) But might crash from time to time. It requires installation, there are only Windows binaries
  • WebcoinX: it is web based, and presumably easier to use. But it's currently under development, so might be buggy. But, I think, basic functionality like sending and receiving coins works.
  • NGCCC: it is a command-line client, written in Python... probably not what you want

So, WebcoinX: http://bitcoinx.github.io/webcoinx/ (Note that currently there is a bug: you need to reload page after user interface loads, as it isn't initialized properly on the first run)

To issue colored coins, get some coins from a faucet (check 'overview' tab) and then go to 'Issue' tab. Fill the form, and that would be it.

If you would rather use ArmoryX, please let me know.

I wrote my comment before the btc-tc news came out. I believe after this people would have more interest in this project.

I have tried to read some of the material but I guess I have some trouble understanding the status and support level for this project.  A few more questions:

1. What do you mean "our software is too slow", which software are you referring to and what do you mean by too slow?  How will this be addressed?

2. Are there known issues that would result in compromised integrity of an issue of colored coin (I think you call it color leakage or dilution in one of the papers)?

3. Are there issues with the way the accounting for colored coins works and harmonization with the bitcoin development path which could put an issue of colored coin at risk?

4. What is being developed now and what is planned?  Is there some other online forum where dialog is taking place?

thanks!

member
Activity: 105
Merit: 10
Colored coins as a way to have stock/bonds/... could be a good way to avoid centralization of assets exchange such as BTC-TC, Litecoin-Global...

I hope last crypto stock crisis (BTC-TC and Litecoin-global being forced to close down) will highlight this project
legendary
Activity: 1022
Merit: 1015
dumb question...

how would one go about creating a colored coin?

i want to create a colored coin for my company FakeCo for my thesis and give it away to study how it spreads (FakeCo would also have fake PR and fake earnings announcements, etc)

Well, if it's all fake, I guess testnet will suite you... The difference is that testnet coins do not cost anything and can be obtained from a faucet; also someone can easily do 51% attack (to double-spend, for example). The advantage of using testnet is that our software is too slow to run on mainnet atm.

So there are three options:

  • ArmoryX: I have no idea if it still can be used on testnet (as it requires old version of bitcoind), but maybe it does. ArmoryX is fairly mature in terms of functionality. (Particularly, p2p trade works.) But might crash from time to time. It requires installation, there are only Windows binaries
  • WebcoinX: it is web based, and presumably easier to use. But it's currently under development, so might be buggy. But, I think, basic functionality like sending and receiving coins works.
  • NGCCC: it is a command-line client, written in Python... probably not what you want

So, WebcoinX: http://bitcoinx.github.io/webcoinx/ (Note that currently there is a bug: you need to reload page after user interface loads, as it isn't initialized properly on the first run)

To issue colored coins, get some coins from a faucet (check 'overview' tab) and then go to 'Issue' tab. Fill the form, and that would be it.

If you would rather use ArmoryX, please let me know.
legendary
Activity: 1666
Merit: 1010
he who has the gold makes the rules
dumb question...

how would one go about creating a colored coin?

i want to create a colored coin for my company FakeCo for my thesis and give it away to study how it spreads (FakeCo would also have fake PR and fake earnings announcements, etc)

legendary
Activity: 1022
Merit: 1015
Is the new client ready?   Grin

No. Sad

So far we've got only a command-line proof-of-concept client, not really usable...

But there is a hope we'll get a usable one... In two weeks or so... Smiley
hero member
Activity: 633
Merit: 500
Is the new client ready?   Grin
legendary
Activity: 1022
Merit: 1015
By the way, people, this ArmoryX thing is outdated: basically, Bitcoin Armory just isn't a good platform.

We are working on "next-generation colored coin client" which will work without Armory. It will be available in about a month:

https://github.com/bitcoinx/colored-coin-tools/wiki/The-next-gen-colored-coin-client

Currently there is a very basic tech demo in Python: https://github.com/bitcoinx/ccoin-agent-py

Also we are working on WebcoinX web client: http://bitcoinx.github.io/webcoinx/
member
Activity: 83
Merit: 10
太牛逼了,向楼主致敬。

It's amazing!The salute to the landlord.
legendary
Activity: 1022
Merit: 1015
Isn't it possible to color any coin in the blockchain? Does it have to include the Genesis block only?

Yes, it is possible to color any coin. We talk about "color genesis", not about genesis block. It is just an analogy: just as a genesis block is a start of a blockchain, "genesis transaction output" is a start of a new color.
full member
Activity: 126
Merit: 100

Isn't it possible to color any coin in the blockchain? Does it have to include the Genesis block only?


legendary
Activity: 1022
Merit: 1015
Quote
All inputs and outputs should be sorted by color, with matching sort order. E.g. red inputs, blue inputs, uncolored inputs. Red outputs, blue outputs, uncolored outputs.

This lead me to believe there was a "sort order", like ascending sorting by color ID or something.
Now I realize there need not be any order, only that same colors should be adjacent (next to each other).

This rule is basically a recommendation on how to create transaction, it serves for illustrative purpose, but it's now how you're supposed to identify colors.

When client tries to identify color of a transaction output, it should follow the scheme described in "Order-based coloring" section, which means:

1. Color of each output can be found independently, they do not affect each other in any way.
2. Software MUST NOT try to validate transaction's coloring in any way.

So, as I understand it, you are saying that each genesis tx out  will be considered a separate color. By "does not mix with other colors" you mean that different colors of the same asset will not be lumped together?

Yes.

Some transactions might get larger because of this, but I think it's more important to have a reliable, working system than to optimize encoding.
full member
Activity: 202
Merit: 100
killerstorm, it's good you are making headway.
I want to contribute some code as soon as I have all the fundamentals figured out.

The spec I mentioned is:
https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md
which says:
Quote
All inputs and outputs should be sorted by color, with matching sort order. E.g. red inputs, blue inputs, uncolored inputs. Red outputs, blue outputs, uncolored outputs.

This lead me to believe there was a "sort order", like ascending sorting by color ID or something.
Now I realize there need not be any order, only that same colors should be adjacent (next to each other).

Quote
Each issue (i.e. a genesis tx out) is a separate color which does not mix with other colors, but an asset can consist of several colors.

So, as I understand it, you are saying that each genesis tx out  will be considered a separate color. By "does not mix with other colors" you mean that different colors of the same asset will not be lumped together?

legendary
Activity: 1022
Merit: 1015
I understand that you were writing the spec in a hurry. Because you know what you were talking about. But for me it is a frustrating experience having to read a sentence many times over without it making sense.

Yeah, sorry. I thought somebody will make a pull request...

Quote
Because (according to the spec) a transaction involving multiple colored coins has to have all its inputs sorted by color.

Where have you got it from? It is a recommendation, not a requirement.

Quote
Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

No, you don't have to know every color in existence to trace a certain color through the blockchain. Which is great!

Yup, this was a design consideration. People are now working on a color server, by the way.

And we have a thin client which kinda works, but has problems with performance.

While we are at it, if all genesis tx outs are somehow marked in a blockchain, it is possible to make a very fast and simple server which knows about all colors in existence. It can easily scale to millions or even billions of colors without a problem.

Sadly, marking genesis tx outs seems to be too much of a requirement... So we'll probably end up with two server designs, "fast" and "slow".

Oh, BTW, as you're reading spects... There is an upcoming change to how multiple issues will work:

Each issue (i.e. a genesis tx out) is a separate color which does not mix with other colors, but an asset can consist of several colors.

This change eliminates a number of complexities. Basically it is much more straightforward and secure. It also enables us to create faster color-aware servers and clients and enables multi-issuer assets.
full member
Activity: 202
Merit: 100
Quoting myself:

Quote
Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

Upon some consideration, the answer is:
No, you don't have to know every color in existence to trace a certain color through the blockchain. Which is great!
full member
Activity: 202
Merit: 100
I need some help understanding BitcoinX protocol:

Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

Because (according to the spec) a transaction involving multiple colored coins has to have all its inputs sorted by color. And so, the colored coins-aware software has to know all colors in advance in order to parse such a multi-color transaction.

Is this observation correct or am I missing something?

full member
Activity: 202
Merit: 100
OK, so maybe

Preceding sum of input i is sum of values of all outputs from 0 below i.

should read:

Preceding sum of input i is sum of values of all INPUTS from 0 below i.

I understand that you were writing the spec in a hurry. Because you know what you were talking about. But for me it is a frustrating experience having to read a sentence many times over without it making sense.
full member
Activity: 202
Merit: 100
killerstorm, the following sentence goes over my head, could you please paraphrase it, so that an uninitiated person like myself could understand:
(taken from https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md )

Quote
Formal definition:

Preceding sum of input i is sum of values of all outputs from 0 below i.

The way I read it:
"Preceding sum of input i" - hmm, an input just has a value, what sum are we talking here about?
legendary
Activity: 1022
Merit: 1015
Trying to understand ArmoryX code, I came across:
https://github.com/bitcoinx/BitcoinArmory/commit/791e3e0d88e15b7d48590f12da8324ebaa5c2854#L0R3677
with a comment:
 //transaction is invalid if sum(inputs) > sum(outputs)

I always thought sum(inputs) > sum(outputs) makes a perfectly valid transaction. What am I missing?

Sorry, that's just a typo. Comment should be: sum(inputs) < sum(outputs).
full member
Activity: 202
Merit: 100
Trying to understand ArmoryX code, I came across:
https://github.com/bitcoinx/BitcoinArmory/commit/791e3e0d88e15b7d48590f12da8324ebaa5c2854#L0R3677
with a comment:
 //transaction is invalid if sum(inputs) > sum(outputs)

I always thought sum(inputs) > sum(outputs) makes a perfectly valid transaction. What am I missing?
legendary
Activity: 1022
Merit: 1015
Can't you just use ArmoryX for that? It can be run as a server, without GUI.
Pages:
Jump to: