Author

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

full member
Activity: 140
Merit: 100
Hi,

I sent some BTC to that exodus address in mid August, how do I get my 100x Master coins?

Thanks!
legendary
Activity: 1358
Merit: 1003
Ron Gross
Yeah, these are good points, thanks killerstorm for putting my thoughts into writing Smiley
This was just too good to be true and the architecture details indeed didn't show a distributed architecture, I was just too busy with other matters to dive into the details.

I still think it's a good project, don't get me wrong, it just shouldn't be called a "fully distributed architecture", because it is not a.t.m. - you manually choose one or more servers and work with them.

It can be decentralized further in the future, perhaps something like what Ripple are doing with their server selection algorithms (forgot the name of the "server list" feature).
legendary
Activity: 1022
Merit: 1033
The obelisk server is open source, and I just run my own locally (just like people run bitcoind).

So you run a local server, which has database and everything, but you call it:

  • Fully distributed architecture - no need for database or webserver.

Got it.

The more obelisk servers will appear  you would have more nodes to choose from so that a higher trust level would be achieved.

No, it doesn't work this way. Have you ever heard about Sybil attack? ( http://en.wikipedia.org/wiki/Sybil_attack )

Lots of servers which are run by anonymous people on the internets won't help you. If you believe that it is unlikely that there will be a collusion among several independent server operators, then you need to be sure you connect to servers which are run by certain operators, and follow certain policy.

For example:

1. Suppose there are 10 servers operators of which are well known and it is believed that they are fully independent.
2. When you check whether Mastercoin transaction is correct, you request information from all of these 10 servers.
3. If less than 5 of them respond you abort immediately.
4. Each response is signed with server's unique private key.
5. If all of response agree, you assume that responses can be trusted and proceed with transaction validation.
6. If they disagree, you abort the procedure and save signed responses.
7. There will be investigation, and servers which produced wrong responses without a good excuse (e.g. well known bug in software) will be excluded from the list permanently.
sr. member
Activity: 284
Merit: 250
The distributed architecture uses a new type of bitcoin node. Not the "satoshi reference client", but an obelisk server. The obelisk server implements the bitcoin protocol using libbitcoin and participates in the network like other nodes. The great thing about this new server is that you can ask it complicated questions about the blockchain, e.g. get-history of an address, monitor and address, get-utxo for a specific address, fetch specific transaction, etc. It means that there is no need to hold a database and parse the blockchain for bitcoin information.

Why do you think it is a good idea to use obelisk servers as a source of information?

If you query history for an address, you cannot verify whether servers gives you all information.

This means that people who control these servers can easily perform double-spends by hiding send-to-self transactions.

The need to trust servers, is bad, but the bigger problem with it is that you don't know who runs these servers, and so there is no accountability.

The obelisk server is open source, and I just run my own locally (just like people run bitcoind). You can do that as well, or just compare results from few obelisk servers.
A mastercoin user checking mastercoin-explorer.com or some other similar centralized-database-driven web-based source has an inferior position. If that central server is hacked, the user would see wrong information, which can be used to trick him.
On the other hand, having a local copy of masterchain.info (e.g. directly from github) and running a sync to a chosen obelisk server (even a local obelisk server), gives you for sure results directly from the blockchain which is the single consensus.
The more obelisk servers will appear (keep in mind that the project is still very new - 3 days ago was the first release https://github.com/spesmilo/obelisk/tree/0.2), you would have more nodes to choose from so that a higher trust level would be achieved.
I would like to remind that the obelisk simply implements the bitcoin protocol, just like bitcoind does.


legendary
Activity: 1022
Merit: 1033
The distributed architecture uses a new type of bitcoin node. Not the "satoshi reference client", but an obelisk server. The obelisk server implements the bitcoin protocol using libbitcoin and participates in the network like other nodes. The great thing about this new server is that you can ask it complicated questions about the blockchain, e.g. get-history of an address, monitor and address, get-utxo for a specific address, fetch specific transaction, etc. It means that there is no need to hold a database and parse the blockchain for bitcoin information.

Why do you think it is a good idea to use obelisk servers as a source of information?

If you query history for an address, you cannot verify whether servers gives you all information.

This means that people who control these servers can easily perform double-spends by hiding send-to-self transactions.

The need to trust servers, is bad, but the bigger problem with it is that you don't know who runs these servers, and so there is no accountability.
legendary
Activity: 1358
Merit: 1003
Ron Gross
Thanks, this helps a lot.
If I have more technical questions I'll let you know.

Congrats again to yourself and everyone else for all the wonderful projects that we're seeing, I'm excited to think where we'll be in one year from now Smiley
sr. member
Activity: 284
Merit: 250
New announcement of mastercoin-tools !!!
tl;dr:
http://masterchain.info
you can even try it with your tablet and mobile phone ;-)

Horrey!

Grimentz https://bitcointalksearch.org/user/grimentz-153554, a known html5 specialist, has joined the mastercoin-tools team and now we are proud to announce http://masterchain.info
It was hard work, but I think you can see that.

  • Fully distributed architecture - no need for database or webserver.
  • You can use the site offline and update it locally on request.
  • Sync to bitcoin network is done using sx which connects to some public obelisk bitcoin node.
  • Sending a transaction directly using Send supports offline wallets.
  • There is an API section and a Download section for snapshot of parsed data

It is important to note that for "simple send", the "basic" variant is supported as well as "multisig simple" (see MIP1 https://github.com/grazcoin/mastercoin-tools#mastercoin-improvement-proposal-mip1. The previous multisig (with 4 outputs) is not yet implemented. It means currently a fork in parsing.  I would like to re-open the discussion on the "multisig simple" in another thread.


Can you explain the architecture of masterchest? How does it work in a completely decentralized manner without a DB or webserver?

On the client-side of masterchain (http://masterchain.info) we use AngularJS. AngularJS is a javascript library that relieves the server backend from HTML-rendering responsibilities. The dynamic data, sent as json, is rendered on the client-side in plain HTML + some customized tags. Using AngularJS we were able to create a prototype of our site within days, so I had plenty of time to improve the usability of the site (solid graphic design, responsive design using bootstrap so the site would be usable on tablets and smart phones and some "eye candies".) I hope you would like the result.

Can you give me some details?
json is fine, but what powers that up? Is there a central stateful server? (Since there is no database)
That server holds the parsed mastercoin blockchain?
What happens when that server fails?
Is there redundancy?
If you start a new backend server, how long does it need to restart? Does it need to reparse the blockchain?

First of all I would like to note that we're talking about masterchain.info and not masterchest.info Smiley
Just for the record:
masterchain.info domain was created on 05-Sep-2013
masterchest.info domain was created on 16-Sep-2013

The distributed architecture uses a new type of bitcoin node. Not the "satoshi reference client", but an obelisk server. The obelisk server implements the bitcoin protocol using libbitcoin and participates in the network like other nodes. The great thing about this new server is that you can ask it complicated questions about the blockchain, e.g. get-history of an address, monitor and address, get-utxo for a specific address, fetch specific transaction, etc. It means that there is no need to hold a database and parse the blockchain for bitcoin information.
You can get more info about the possibilities of this new architecture on http://bitcoinmagazine.com/6234/what-libbitcoin-and-sx-are-and-why-they-matter/

The offline part is achieved using parsed data as json in a local directory (described also in http://masterchain.info/API.html )
These json are either generated using the given python code or they are simply retrieved as a snapshot without code running at all.
At any moment, when having network connectivity, one can sync with the network by running parse and validate (e.g. via cron).
It is possible then to browse the local directory, or put it statically on a web server. Javascript makes the magic - see https://bitcointalksearch.org/topic/m.3327669

The stand-alone send is actually a bitcoin client implemented using the sx tool. It asks for unspent transaction outputs for a specific address, creates the transaction (with the mastercoin rules), and either asks for a signature or gives the transaction unsigned, for offline signing. There is the option to broadcast the signed transaction or send it directly to any specific bitcoin node (also to a standard "satoshi reference"). Obviously for the final sending of the transaction, network connectivity is required.

I hope this answers most questions about backend and redundancy - someone else solved that Smiley

Edit: more on redundancy - the obelisk server (https://libbitcoin.dyne.org/index.html) includes a load balancer which handles multiple workers - each has its own blockchain. If for some reason a worker dies, the other workers are used transparently, and the server users don't even notice.

legendary
Activity: 1358
Merit: 1003
Ron Gross
On the client-side of masterchain (http://masterchain.info) we use AngularJS. AngularJS is a javascript library that relieves the server backend from HTML-rendering responsibilities. The dynamic data, sent as json, is rendered on the client-side in plain HTML + some customized tags. Using AngularJS we were able to create a prototype of our site within days, so I had plenty of time to improve the usability of the site (solid graphic design, responsive design using bootstrap so the site would be usable on tablets and smart phones and some "eye candies".) I hope you would like the result.

Can you give me some details?
json is fine, but what powers that up? Is there a central stateful server? (Since there is no database)
That server holds the parsed mastercoin blockchain?
What happens when that server fails?
Is there redundancy?
If you start a new backend server, how long does it need to restart? Does it need to reparse the blockchain?
legendary
Activity: 1358
Merit: 1003
Ron Gross
That's good that you guys post a reference version of your posts in other threads, here too. I humbly ask anybody else involved in mastercoin development to do the same (several mastercoin threads popped up recently, and it is very hard to follow them altogether).
Also, please guys, do not post off-topics or personal dialects over here, it has become a long thread already!
Thank you all Smiley

Actually, I personally can't keep up of this thread, so I prefer branching out to different threads.
I copied LuckyBit's post there and answered it on that thread.

If you want to discuss voting, please do that there instead of here. We'll of course post any conclusions we have back to this main thread.
hero member
Activity: 714
Merit: 510
... Proof of Stake would create a situation where dacoinminster would own most of the coins and the system would be gamed by him or whomever else owns most of the coins. ...
Just to correct one misconception about mastercoin that I've seen mentioned a few times; JR's personal investment did not purchase the majority of total coin supply.  JR holds the largest investment absolutely, but he does not own most of the coins.

For specifics (hope you don't mind me posting this JR but it's a matter of public record for anyone who cares to look) JR purchased ~175,195 MSC (ref) and the total coin supply is ~619,478 MSC.  JR thus purchased and holds roughly 28% of the coins created during the minting process.



And that is the problem and why Proof of Stake voting is stupid. Each member of the foundation should get approximately 1 vote. 1 head 1 vote.
hero member
Activity: 672
Merit: 500
That's good that you guys post a reference version of your posts in other threads, here too. I humbly ask anybody else involved in mastercoin development to do the same (several mastercoin threads popped up recently, and it is very hard to follow them altogether).
Also, please guys, do not post off-topics or personal dialects over here, it has become a long thread already!
Thank you all Smiley
sr. member
Activity: 266
Merit: 250
New version of the masterchest desktop wallet uploaded, just a few minor bugfixes:
# Fixed - bitcoin wallet passphrase is displayed cleartext in send panel
# Fixed - settings show 'unconfigured' in settings panel after using 'getting started' panel
# Fixed - debug auto scrolling intermittent after switching away and back to debug panel

This is a testing release only and is not fit for real usage - do not under any circumstances plug it into a bitcoin wallet with any sizable amount of bitcoins/mastercoins.  Test only with an almost empty wallet.

https://github.com/zathras-crypto/masterchest-wallet

Please let me have any feedback Smiley
sr. member
Activity: 266
Merit: 250
... Proof of Stake would create a situation where dacoinminster would own most of the coins and the system would be gamed by him or whomever else owns most of the coins. ...
Just to correct one misconception about mastercoin that I've seen mentioned a few times; JR's personal investment did not purchase the majority of total coin supply.  JR holds the largest investment absolutely, but he does not own most of the coins.

For specifics (hope you don't mind me posting this JR but it's a matter of public record for anyone who cares to look) JR purchased ~175,195 MSC (ref) and the total coin supply is ~619,478 MSC.  JR thus purchased and holds roughly 28% of the coins created during the minting process.

hero member
Activity: 714
Merit: 510
Everyone, please check out this thread about a new core meta-feature I want to include in Mastercoin - voting on changes.

The Mastercoin protocol will continue to evolve, and currently there is no clear way to evolve the protocol in a decentralized manner. I think it's essential that nobody, including client developers and members of the Mastercoin Foundation, have any kind of control over the protocol. Its users should vote on any desired protocol change using a Proof Of Stake like system.
Do not use Proof of Stake. Use code based voting http://people.eng.unimelb.edu.au/vjteague/PGD.pdf

Each member of the foundation should be verified. Their votes should be tied to their real world identity. Each member should receive a code sheet to their smartphone or mailing address. That sheet should allow them to vote pseudo-anonymously in elections so that no one will know who they voted for or what but every member would be equal and capable of voting. Proof of Stake would create a situation where dacoinminster would own most of the coins and the system would be gamed by him or whomever else owns most of the coins.

An additional solution, create a vote coin for each specific vote. Require any verified member of the Mastercoin foundation to purchase each coin for each vote. This would ensure that each member receives only one vote and then set up an address where they all send the coins to. If they vote one way it should say yes and another way it should say no. This could be stored as a transaction and decoded to determine which way they voted. The addition of the code sheet would make it so no one could figure out who votes for what, just the amount of verified members who voted and for what.

The tokens would be limited to the exact number of members in the Mastercoin foundation. It could not be gamed because each member would only be able to vote once per election. Each member would have to purchase a vote coin so the voting would not be free, but it should be cheap. Tokens would either be heads or tails to represent the way they voted. In the future it could include heads, tails, or unsure. This could all be done by fuzzy logic. Each token would be unique and counting the votes would happen in real time.
sr. member
Activity: 266
Merit: 250
Masterchest.info

Initial source release of the Masterchest.info block explorer. 

This .NET web application functions as a block explorer for mastercoin transactions.  It relies on masterchest-engine to update a database of transactions and balances.  This application then provides a user interface to that information and allows lookup of address, balances and transactions etc.

With thanks to:  BouncyCastle, Newtonsoft, Tachikoma

Requirements: .NET 4, IIS, SQL server, masterchest-engine, bitcoind/qt RPC server with transaction indexing enabled (disabled by default in 0.8+, add txindex=1 in bitcoin.conf and then start with -reindex to readd transaction index).

The desktop wallet is taking a lot more time than I thought and I just don't think I'm going to have time to finish the online wallet component of masterchest.info (not in a manner that I'm happy is secure enough anyway) before the competition ends.  As such I've stripped out those parts and open sourced the block explorer.

Source is available at : https://github.com/zathras-crypto/masterchest.info

As always feedback/questions of course welcome Smiley
newbie
Activity: 12
Merit: 0
New announcement of mastercoin-tools !!!
tl;dr:
http://masterchain.info
you can even try it with your tablet and mobile phone ;-)

Horrey!

Grimentz https://bitcointalksearch.org/user/grimentz-153554, a known html5 specialist, has joined the mastercoin-tools team and now we are proud to announce http://masterchain.info
It was hard work, but I think you can see that.

  • Fully distributed architecture - no need for database or webserver.
  • You can use the site offline and update it locally on request.
  • Sync to bitcoin network is done using sx which connects to some public obelisk bitcoin node.
  • Sending a transaction directly using Send supports offline wallets.
  • There is an API section and a Download section for snapshot of parsed data

It is important to note that for "simple send", the "basic" variant is supported as well as "multisig simple" (see MIP1 https://github.com/grazcoin/mastercoin-tools#mastercoin-improvement-proposal-mip1. The previous multisig (with 4 outputs) is not yet implemented. It means currently a fork in parsing.  I would like to re-open the discussion on the "multisig simple" in another thread.


Can you explain the architecture of masterchest? How does it work in a completely decentralized manner without a DB or webserver?

On the client-side of masterchain (http://masterchain.info) we use AngularJS. AngularJS is a javascript library that relieves the server backend from HTML-rendering responsibilities. The dynamic data, sent as json, is rendered on the client-side in plain HTML + some customized tags. Using AngularJS we were able to create a prototype of our site within days, so I had plenty of time to improve the usability of the site (solid graphic design, responsive design using bootstrap so the site would be usable on tablets and smart phones and some "eye candies".) I hope you would like the result.
sr. member
Activity: 266
Merit: 250
Copy of a post I made on the contest thread:

Just letting you guys know the masterchest.info update is complete.  Transactions should be displayed within a minute or so of its bitcoind node seeing them on the network now without needing to wait for them to be included in a block.

This update includes support for unconfirmed transactions, they can be identified by their valid marker being blue:



Let me know if you come across any problems Smiley  Thanks!
legendary
Activity: 1358
Merit: 1003
Ron Gross
New announcement of mastercoin-tools !!!
tl;dr:
http://masterchain.info
you can even try it with your tablet and mobile phone ;-)

Horrey!

Grimentz https://bitcointalksearch.org/user/grimentz-153554, a known html5 specialist, has joined the mastercoin-tools team and now we are proud to announce http://masterchain.info
It was hard work, but I think you can see that.

  • Fully distributed architecture - no need for database or webserver.
  • You can use the site offline and update it locally on request.
  • Sync to bitcoin network is done using sx which connects to some public obelisk bitcoin node.
  • Sending a transaction directly using Send supports offline wallets.
  • There is an API section and a Download section for snapshot of parsed data

It is important to note that for "simple send", the "basic" variant is supported as well as "multisig simple" (see MIP1 https://github.com/grazcoin/mastercoin-tools#mastercoin-improvement-proposal-mip1. The previous multisig (with 4 outputs) is not yet implemented. It means currently a fork in parsing.  I would like to re-open the discussion on the "multisig simple" in another thread.


Can you explain the architecture of masterchest? How does it work in a completely decentralized manner without a DB or webserver?
legendary
Activity: 1358
Merit: 1003
Ron Gross
And BTW, the Mastercoin Foundation is a registered nonprofit organization.
Buying mastercoins is an investment, of course, and the goal of the Foundation is pretty much to increase the value of Mastercoins (unofficial agenda). I believe that the change I propose will increase the value of mastercoins.
legendary
Activity: 1358
Merit: 1003
Ron Gross
Everyone, please check out this thread about a new core meta-feature I want to include in Mastercoin - voting on changes.

The Mastercoin protocol will continue to evolve, and currently there is no clear way to evolve the protocol in a decentralized manner. I think it's essential that nobody, including client developers and members of the Mastercoin Foundation, have any kind of control over the protocol. Its users should vote on any desired protocol change using a Proof Of Stake like system.

Booo!  This is garbage.  The EU makes some of the least effective laws ever because they are a giant committee of 22+ members.  This project needs a top decision maker - and that is JR.  As soon as you decentralize the rule, the project will wander about going nowhere as consensus becomes impossible and everyone gets jaded about what the other guy is doing.  JR is so far an excellent lead who gives loads of leeway for participants to work on what they like.  No way in hell should we ruin this project by removing a clear, strong leader with objectives.  

Time for you to cool off ripper.  Proposing to remove the project lead - and install your dumb direction is bad news.  If you want a project with no leader, go join the idiots who participate in many of those.  Mastercoin was set up as a for profit entity and those who own coins want it to one day be worth a shitload.  Who is making money off Linux?  Nobody.  This aint Linux. 

Nobody is suggesting to remove the project lead. JR is doing a fantastic job, and we're all lucky to have him.
Still, I think that he himself doesn't want to be perceived, rightfully so, as "the editor of the mastercoin protocol".
There are a couple of reasons:

1. Decentralized beats centralized every time. Look at Bitcoin - Gavin is doing a great job, but even he can't single handedly change protocol features - he can propose them, but miners and users decide.
2. I think Willet would want to remove himself from the power to decide, because otherwise he might be legally responsible. If the ideas of building a decentralized marketplace on top of Mastercoin gets implemented, and drugs are traded on it ... Willet should not be the person to authorize the addition of this feature.

Decentralized simply has not disadvantages here. BTW I believe the Willet still has >50% of the mastercoins, so currently he would still be the supreme protocol leader, but he would be able to easily sell of some coins to reduce his stake and "dictatorship", if he so chooses.

Willet can voice his own opionions on the above, but as a member of the Mastercoin Foundation, I myself would insist that Mastercoin the protocol has to decouple itself from any person or organization. I don't think Willet would object to this.
Jump to: