Author

Topic: MasterCoin: New Protocol Layer Starting From “The Exodus Address” - page 123. (Read 448462 times)

hero member
Activity: 938
Merit: 1000
According to the discussion I had with J.R. the address that spend the most coins for a given transactions receives the coins.

such an agreement should go to the spec, but generally I see no problem with dividing the mastercoins in a fair way between the contributing addresses.
This solves the theoretical problem of few addresses that sent the same amount of bitcoins.

I agree, but this is what J.R. told me. Could we get a clarification on this J.R.?
sr. member
Activity: 284
Merit: 250
According to the discussion I had with J.R. the address that spend the most coins for a given transactions receives the coins.

such an agreement should go to the spec, but generally I see no problem with dividing the mastercoins in a fair way between the contributing addresses.
This solves the theoretical problem of few addresses that sent the same amount of bitcoins.
hero member
Activity: 938
Merit: 1000
According to the discussion I had with J.R. the address that spend the most coins for a given transactions receives the coins.
sr. member
Activity: 284
Merit: 250
I just announced mastercoin-tools on https://bitcointalksearch.org/topic/ann-mastercoin-tools-291914
Sources are available on:
https://github.com/grazcoin/mastercoin-tools

At this stage it generates a list with total amount of mastercoins for each address:
https://github.com/grazcoin/mastercoin-tools/blob/master/outputs/msc_per_address.csv

I have compared it with http://mastercoin-explorer.com
An example for disagreement is:
http://mastercoin-explorer.com/addresses/1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT
where the amount of mastercoins on mastercoin-explorer.com is 1504.69444445 and according to mastercoin-tools the amount is 1404.27673743
I could run a comparison test on all addresses, but I though it could be easier for mastercoin-explorer.com maintainer to do it.

The bootstrap values are very important to any implementation, and I suggest that the community agrees on one list (hopefully mine), later implementations could take it as static data and skip the calculations.
I also suggest that once the list is finalized, 1EXoDus address signs it, and it becomes an appendix to the spec which would be living as ascii doc on github.

Generally this package should have live update - direct interaction with the bitcoin network (using sx monitor). It should run without a database and serve as an alternative code base. This way anyone would be able to run a node at home without the need for a database setup.

enjoy!

1404.27673743 would be too low. I assume you mean mastercoin-tools calculates 1504.27673743 instead of 1504.69444445?


checking the bootstrap log:
https://raw.github.com/grazcoin/mastercoin-tools/master/outputs/bootstrap_story.log
and grepping 1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT shows 2 relevant transactions:

https://blockchain.info/tx/1dc56b1abb899c0b613e3bdaf455aa5b379bfd3fd524cbcdd1de00355b52c61e
block 255305 tx hash 1dc56b1abb899c0b613e3bdaf455aa5b379bfd3fd524cbcdd1de00355b52c61e value 1000000000 -> 100336441799 dacoins
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
13GfTmStyPpsVf9BzUC283ngs94KEnqorX sent 100090000 satoshi and got 10041770700 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 100000000 satoshi and got 10032741233 dacoin

total sent 10.0007 BTC
fees 0.0002 BTC
This sums up to 100336441799 dacoins (same as in http://mastercoin-explorer.com/transactions/1dc56b1abb899c0b613e3bdaf455aa5b379bfd3fd524cbcdd1de00355b52c61e)

To divide the mastercoins between the addresses we see how much each address contributed.
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 900000000 satoshi (can be verified at https://blockchain.info/rawtx/1dc56b1abb899c0b613e3bdaf455aa5b379bfd3fd524cbcdd1de00355b52c61e)
13GfTmStyPpsVf9BzUC283ngs94KEnqorX sent 100090000 satoshi
Total sent is 900000000+100090000=1000090000
The share of 1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT is 900000000/1000090000*100336441799=90294671099

https://blockchain.info/tx/2ba57d54d5220f1bf6cdc8930876b52c23d94052477202b6db7a07112a7ca328
block 255318 tx hash 2ba57d54d5220f1bf6cdc8930876b52c23d94052477202b6db7a07112a7ca328 value 500000000 -> 50133002646 dacoins
1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT sent 500900000 satoshi and got 50133002646 dacoin

The sum for 1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT from these 2 tx is then 90294671099+50133002646=140427673745 (or 1404.27673745 mastercoins)
The address 13GfTmStyPpsVf9BzUC283ngs94KEnqorX gets the rest: 100.41770700 mastercoins (and together it is 1504.69444445).
As far as I understood, each address gets its proportional part.

If you would like to understand the exact calculation, check the code. If there is some error, please point me.

I'm trying to understand your suggestion about a package with a live update. Are you suggesting that MasterCoin clients should decouple from the block chain completely and rely on a vetted record of transactions? If so, that would seem to lose our decentralization. If not, what are you suggesting?

The live update is a feature of the command sx-monitor which listens to the bitcoin network on specific address (1EXoDus address in our case), and in real time outputs new tx. The code will parse them on-the-fly and show the mastercoin tx.
A different mechanism will go over the output (optionally also on-the-fly) and decide if the tx is valid or not according to the mastercoin balance of the address (invalid tx if there are not enough funds).
hero member
Activity: 938
Merit: 1000
At this stage it generates a list with total amount of mastercoins for each address:
https://github.com/grazcoin/mastercoin-tools/blob/master/outputs/msc_per_address.csv
I will compare those stats to the explorers data as soon as I can, will probably will have to wait till the weekend though.

The bootstrap values are very important to any implementation, and I suggest that the community agrees on one list (hopefully mine), later implementations could take it as static data and skip the calculations.

I also suggest that once the list is finalized, 1EXoDus address signs it, and it becomes an appendix to the spec which would be living as ascii doc on github.

I don't think anything should be set in stone; not yet at least. Too much needs to be added which could have effects on the previous transactions.

One of the things I was considering adding is an unified data format to the spec that we could use as replay and compare logs. It could also be used by other implementations to compare data. Basically adding a json-data format for Mastercoin.
legendary
Activity: 1260
Merit: 1031
Rational Exuberance
In the interest of full transparency, here is the updated expenditure list I sent to the board just now. Hopefully I can process refunds tomorrow.


Quote
We've decided to set the cutoff date for investments a couple blocks later in order to accommodate some people who sent before the deadline, but did not get included in a block until after the deadline. Consequently, the expenditure list has changed slightly. Here's the final list of transactions which I hope to execute soon, probably tomorrow:

    13.279 BTC in refunds to investors who missed the deadline (addresses and details here: https://docs.google.com/spreadsheet/ccc?key=0AnnInaIJVqrtdGMteFNOWjBpWTNqd3BYbWUzdGVLMmc#gid=0)
    3 BTC bounty to bytemaster (1Nou27Zt2k3yTFHw6yePg3A1df2ohCTFFb per his PM to me) as a bounty for their work exposing a flaw in my spec. (details here: https://groups.google.com/d/msg/mastercoin/EQgEHvKJBh4/4VeE3a02I3QJ)
    3 BTC to d'aniel as part of the same bounty. D'aniel requested that his prize go to forum member gmaxwell: 1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB, request is here: https://bitcointalksearch.org/topic/m.3041300)
    2 BTC to mich for the awesome logo (13x2dka6tVhjsNNNomGJjUPi2iJQCb67bw, verified by him)
    0.1 BTC to Ron to reimburse his purchase of MasterCoin.org (1HfXDX3ALapNebQC8stTdd5zK7kiCgvX9n)

Total expenditures: 21.379 BTC
Aside from the changes to the refund list, this is the same list of expenditures as before, so I don't expect comments - I'm just keeping you guys in the loop.

Thanks!

-J.R.

If you are expecting a refund, please check the spreadsheet linked above and make sure it looks correct. Thanks!
legendary
Activity: 1260
Merit: 1031
Rational Exuberance
I just announced mastercoin-tools on https://bitcointalksearch.org/topic/ann-mastercoin-tools-291914
Sources are available on:
https://github.com/grazcoin/mastercoin-tools

At this stage it generates a list with total amount of mastercoins for each address:
https://github.com/grazcoin/mastercoin-tools/blob/master/outputs/msc_per_address.csv

I have compared it with http://mastercoin-explorer.com
An example for disagreement is:
http://mastercoin-explorer.com/addresses/1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT
where the amount of mastercoins on mastercoin-explorer.com is 1504.69444445 and according to mastercoin-tools the amount is 1404.27673743
I could run a comparison test on all addresses, but I though it could be easier for mastercoin-explorer.com maintainer to do it.

The bootstrap values are very important to any implementation, and I suggest that the community agrees on one list (hopefully mine), later implementations could take it as static data and skip the calculations.
I also suggest that once the list is finalized, 1EXoDus address signs it, and it becomes an appendix to the spec which would be living as ascii doc on github.

Generally this package should have live update - direct interaction with the bitcoin network (using sx monitor). It should run without a database and serve as an alternative code base. This way anyone would be able to run a node at home without the need for a database setup.

enjoy!

1404.27673743 would be too low. I assume you mean mastercoin-tools calculates 1504.27673743 instead of 1504.69444445?

I'm trying to understand your suggestion about a package with a live update. Are you suggesting that MasterCoin clients should decouple from the block chain completely and rely on a vetted record of transactions? If so, that would seem to lose our decentralization. If not, what are you suggesting?

edit: I also posted this question to your mastercoin-tools thread Smiley
sr. member
Activity: 284
Merit: 250
I just announced mastercoin-tools on https://bitcointalksearch.org/topic/ann-mastercoin-tools-291914
Sources are available on:
https://github.com/grazcoin/mastercoin-tools

At this stage it generates a list with total amount of mastercoins for each address:
https://github.com/grazcoin/mastercoin-tools/blob/master/outputs/msc_per_address.csv

I have compared it with http://mastercoin-explorer.com
An example for disagreement is:
http://mastercoin-explorer.com/addresses/1AGFxUanxnWnrTiwLsY4NyvNZTv3RWFnfT
where the amount of mastercoins on mastercoin-explorer.com is 1504.69444445 and according to mastercoin-tools the amount is 1404.27673743
I could run a comparison test on all addresses, but I though it could be easier for mastercoin-explorer.com maintainer to do it.

The bootstrap values are very important to any implementation, and I suggest that the community agrees on one list (hopefully mine), later implementations could take it as static data and skip the calculations.
I also suggest that once the list is finalized, 1EXoDus address signs it, and it becomes an appendix to the spec which would be living as ascii doc on github.

Generally this package should have live update - direct interaction with the bitcoin network (using sx monitor). It should run without a database and serve as an alternative code base. This way anyone would be able to run a node at home without the need for a database setup.

enjoy!
donator
Activity: 2058
Merit: 1054
I was wondering about what will happen to the test mastercoins... will they be deleted when the protocol is working? Otherwise, it could be that they become valuable as well.
Testnet bitcoins aren't valuable. Everyone knows test mastercoins should not be used for serious purposes, and nobody is promoting their use for serious purposes, so nobody will use them for serious purposes and they will have no value.
Testnet bitcoins are running on a separate block chain. Test mastercoins however are on the same block chain as regular mastercoins. And if they basically can do the same things as normal mastercoins, why shouldn't they be used and gain in value?
If testnet was merged mined against mainnet, tesetnet bitcoins still wouldn't have value. When something is branded as "testing" the Schelling point is that it will be used for testing (especially when it offers no advantage over something branded as "real").

If test mastercoins would so easily have value, it will be trivial to generate 1000000 different Mastercoin "flavors", each following the same protocol but with a different "version byte" (or whatever there is there). If all flavors will have equal value then mastercoins have no chance to have value to begin with. But if not then mastercoins will have a huge advantage over test mastercoins by virtue of being intended for actual use.
hero member
Activity: 700
Merit: 500
I was wondering about what will happen to the test mastercoins... will they be deleted when the protocol is working? Otherwise, it could be that they become valuable as well.
Testnet bitcoins aren't valuable. Everyone knows test mastercoins should not be used for serious purposes, and nobody is promoting their use for serious purposes, so nobody will use them for serious purposes and they will have no value.

Testnet bitcoins are running on a separate block chain. Test mastercoins however are on the same block chain as regular mastercoins. And if they basically can do the same things as normal mastercoins, why shouldn't they be used and gain in value?
donator
Activity: 2058
Merit: 1054
I was wondering about what will happen to the test mastercoins... will they be deleted when the protocol is working? Otherwise, it could be that they become valuable as well.
Testnet bitcoins aren't valuable. Everyone knows test mastercoins should not be used for serious purposes, and nobody is promoting their use for serious purposes, so nobody will use them for serious purposes and they will have no value.
newbie
Activity: 30
Merit: 0
I was wondering about what will happen to the test mastercoins... will they be deleted when the protocol is working? Otherwise, it could be that they become valuable as well.
legendary
Activity: 1260
Merit: 1031
Rational Exuberance
OK, time for technical questions.

  • What is the endianness for the data? self-answered, found on specification: big-endian. Good, I agree.
  • Why does Mastercoin Advisor use a data sequence number lower than the recipient sequence number? Shouldn't it be the successor of the recipient sequence number, as the protocol specifies?
Code:
recipientSequenceNum = ord(recipientBytes[1])
dataSequenceNum = recipientSequenceNum - 1
if dataSequenceNum < 0:
dataSequenceNum = dataSequenceNum + 256

Quote
In order to distinguish data packets from the reference address, the data packet sequence numbers start
at n+1 where n is the sequence number of the reference packet if it were treated as a data packet. Any
additional data packets can continue to use up sequence numbers n+2, n+3, and so on until all sequence
numbers are used except for n-1.
As an example of how this works, let's imagine a MasterCoin transaction that has two data packets. If
the reference address happens to have a sequence number of 62, then the first data packet has a
sequence number of 63 and the second has a sequence number of 64. Note that sequence number 255
is followed by 0.


My implementation: https://github.com/maraoz/pymastercoin/blob/master/message.py#L24 (line 24)
We should define the desired behaviour because if not we won't have compatible parsers/transaction generators.


  • What happens if the Mastercoin data payload is less than 20 bytes? or not a multiple of 20 bytes? I see from Mastercoin Advisor that zeroes are padded. Shouldn't we add that to the specification?
  • Bitcoin testnet Exodus address proposal. Should we define a Testnet exodus address to be able to test stuff in the testnet? I suggest dacoinminster to setup an address and to set the Testnet epoch to 1-Oct-2013, so we have time to buy this testnet mastercoins for the coding contest. This way we don't need to spend real bitcoins to test new protocol features or services.


Two final points: I'm willing to help polish the specification to have something clear for any developer to implement a client or blockchain parser. And later today I'm starting with alternate (not-yet-specified by the Mastercoin protocol) ways of storing  the data in the blockchain. I hope this helps with the blockchain bloating problem.

Aw crap. I meant to update the spec to change how the sequence numbers worked. Thanks for catching that.

When I was writing the code for MasterCoin Adviser, it occurred to me that it might be easier to parse MasterCoin transactions if the first data packet had the first sequence number, then additional data packets following, and then the reference packet last, with the last sequence number. But I never went back and updated the spec to reflect that change. I made that change because I thought it might help if we ever had transactions with data but no reference address.

I had intended Test MasterCoins to be used so I didn't have to create a TestNet version at all, but I have no opposition to TestNet implementations if that is helpful, especially if that helps reduce block-chain bloat Smiley

As you noticed, MasterCoinAdvisor adds zero padding to fill up the unused remainder of any data packet, although you could probably put anything you want there since clients won't look at those bytes. Still, probably best to keep it clean and stick to zeroes unless we think of a reason not to.

edit:
I sent a PM to you about working on the spec, but then I realized other people might want to work on it too, so I've quoted the PM below:

I saw that you'd be interested in helping polish the spec. Ron suggested that we convert it to markdown so that it is more diff-friendly and git-friendly. He would be most pleased if we could get that checked in to our github repo: https://github.com/mastercoin-MSC

If you'd like to work on that, I uploaded the *.doc version here: https://sites.google.com/site/2ndbtcwpaper/MasterCoin%20Specification%201.1.doc?attredirects=0&d=1

Thanks for working on the project! If it weren't for my day-job, I'd have the programming contest launched by now. Sorry . . .

-J.R.
hero member
Activity: 938
Merit: 1000
  • Bitcoin testnet Exodus address proposal. Should we define a Testnet exodus address to be able to test stuff in the testnet? I suggest dacoinminster to setup an address and to set the Testnet epoch to 1-Oct-2013, so we have time to buy this testnet mastercoins for the coding contest. This way we don't need to spend real bitcoins to test new protocol features or services.

I proposed the same mechanism but nothing came off it. So I did the same thing you did and just took a random address and promoted it to tesnet-exodus. In theory there is no reason to have an end date for the testnet address it could be a few years in the future which will make it easier for other developers to buy coins as they come on board.
legendary
Activity: 1050
Merit: 1003
You might have experience as a programmer but I take it you're not a systems guy.  Find someone who is and have them draft the spec.  You might not be familiar with hedging algorithms but you've got one implemented for the currency stabilization process.  Either find one and have them write a paper for you or dig up what the finance guys have in their literature and refer to it.  You don't have a bibliography and that's a bad thing, there is a whole lot here that is not novel and needs to be referenced so everyone knows you're not butting heads with what's generally held to be true.  tl;dr shoddy work designed by the clueless and implemented by the fools that follow them, stay away
There is more to this than hedging. You can reduce the risk of escrow fund exhaustion to zero and still fail to create a mastercoinUSD that is actually worth one USD.

Perfectly stable mastercoinUSD will sell for more than one USD. After all they teleport, real USD bills don't.
If I made USD bills that could teleport, would you pay face value for it? or would you be willing to pay a premium?
What if the network expanded so that you could use my teleporting USD in more places, wouldn't the premium increase?

At the same time unstable mastercoinUSD can sell for less than one USD. After all, they are exchangeable for at most one USD in mastercoin.
If the escrow fund runs dry, they are exchangeable for less than one USD in mastercoin. So their market price will decrease as the amount of backing falls.

The whole point is to achieve parity with the USD.


 


hero member
Activity: 700
Merit: 500
Tachikoma, the latest Mastercoin transactions are not showing up yet on mastercoin-explorer.com. Are they showing up delayed or is there something wrong?

Right now new transactions are added based on a cron job which I suspect might not be running well. I ran it manually now and will check why the cron job isn't working on it's own.

Alright, thanks. Recent transactions are showing up now.
hero member
Activity: 938
Merit: 1000
Tachikoma, the latest Mastercoin transactions are not showing up yet on mastercoin-explorer.com. Are they showing up delayed or is there something wrong?

Right now new transactions are added based on a cron job which I suspect might not be running well. I ran it manually now and will check why the cron job isn't working on it's own.
hero member
Activity: 700
Merit: 500
Tachikoma, the latest Mastercoin transactions are not showing up yet on mastercoin-explorer.com. Are they showing up delayed or is there something wrong?
hero member
Activity: 938
Merit: 1000
Thanks for the donations guys! Smiley

Fantastic job, Tachikoma! Thanks for your efforts!

Question: if you click on "New Transaction" the MasterCoin Advisor appears. How does this work?

It tells you what Bitcoin transactions to send in order to do a Mastercoin transaction. You can see J.R's examples earlier in the thread. For now however I would want to ask you to wait until we have a better way to encode the data in the blockchain.

Hey people. It's late over here (2am) so I'll post a quick update and tomorrow I'll expand. I'm working on a python mastercoin client (works connecting to a running bitcoin client). I made it open-source from the start so that dacoinminster and Tachikoma (and anyone) can peer-review it.

https://github.com/maraoz/pymastercoin

Right now it works like the Mastercoin Advisor script, only that it can also automatically create and broadcast the actual transactions. (no need to create them manually). Anyway, my plan was to build this as a base to test new methods for storing the data payload.

cheers! I'll send some technical questions tomorrow before I continue! (Maybe it's time to create a development thread?)
Manuel

Awesome; I will go over it tonight. If you want to bounce ideas around for encoding data in the chain you can always hit me up with a pm or find me on irc Smiley
legendary
Activity: 1358
Merit: 1003
Ron Gross
I would like to remind everyone that we have a github account - https://github.com/mastercoin-MSC

I would like to request that at some point (either from the start, or when they feel they're ready), they transfer their projects to this repository. It will make it easier to find all Mastercoin related open source code. (They will retain full history and push rights to the repository, of course).

Please contact me if you're interested in such a migration.
Jump to: