Author Topic: [$5000 worth in PTS] BitShares Blockchain Technical Specification [PENDING]  (Read 12606 times)

0 Members and 1 Guest are viewing this topic.

Offline theoretical


I added some updates.  https://github.com/drltc/docblock/blob/master/block.md#on-the-wire-format is most useful to those writing parsers.

My next goal is to document the individual parameter formats and precise semantics of each operation.


BTS- theoretical / PTS- PZxpdC8RqWsdU3pVJeobZY7JFKVPfNpy5z / BTC- 1NfGejohzoVGffAD1CnCRgo9vApjCU2viY / the delegate formerly known as drltc / Nothing said on these forums is intended to be legally binding / All opinions are my own unless otherwise noted / Take action due to my posts at your own risk

Offline vikram


I've started on this bounty.  Initial progress is here:  https://github.com/drltc/docblock

I have some questions here:  https://github.com/drltc/docblock/blob/master/questions.md

Since bytemaster is most familiar with the core code, I suspect he'll be answering most of them.  But any other developers or random forum lurkers are encouraged to answer to conserve bytemaster's time :)

+1 +1 +6

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
can't wait to see this document finished ..
good job so far +5%

Offline theoretical


I've started on this bounty.  Initial progress is here:  https://github.com/drltc/docblock

I have some questions here:  https://github.com/drltc/docblock/blob/master/questions.md

Since bytemaster is most familiar with the core code, I suspect he'll be answering most of them.  But any other developers or random forum lurkers are encouraged to answer to conserve bytemaster's time :)
BTS- theoretical / PTS- PZxpdC8RqWsdU3pVJeobZY7JFKVPfNpy5z / BTC- 1NfGejohzoVGffAD1CnCRgo9vApjCU2viY / the delegate formerly known as drltc / Nothing said on these forums is intended to be legally binding / All opinions are my own unless otherwise noted / Take action due to my posts at your own risk

Offline theoretical


Sorry, it's taking a little longer than I expected, I've been spending most of my time testing and reporting bugs for the client, and of course trading :)

I should be able to get some done this weekend (but if there are any more fantastic margin crises or arbitrage opportunities in store, I may just trade instead).
BTS- theoretical / PTS- PZxpdC8RqWsdU3pVJeobZY7JFKVPfNpy5z / BTC- 1NfGejohzoVGffAD1CnCRgo9vApjCU2viY / the delegate formerly known as drltc / Nothing said on these forums is intended to be legally binding / All opinions are my own unless otherwise noted / Take action due to my posts at your own risk

Offline vikram


Over the next two weeks, I'd like to work on documenting the blockchain format.  In particular, going from a block as a sequence of bytes; to fields with particular data types (uint32, hash); to semantic information about entities like accounts, balances, delegates, orders, and votes.  To keep the scope manageable, I'd like to limit my contribution to focusing on parsing the serialized blockchain.

I'll include information on the following:

- Byte-by-byte documentation of the serialized block format
- Constraints between various fields (e.g. the value in each block's parent block hash field must be equal to the value obtained by computing the hash of the serialization of the parent block).
- Reasons for design decisions
- Genesis-block parameters that can easily be tweaked
- Highlight major BitShares Toolkit features that either mimic features of other cryptocoins, or are different from other cryptocoins
- Describe in detail the implementation of high-level semantic nouns and verbs (e.g.:  What is a short position and how do you cover it?  How do we make TITAN transactions invisible?)

I'll post here with the Github URL when I start.

Also, since the bounty was posted before snapshot was taken, I'd like to ask if the bounty will include the BTSX spawned by the 500 PTS?

Hopefully this post satisfies the "scope and requirements" laid out in the opening post, and we can change from pending to active.

 +5% +5% +5%

Offline bytemaster


Over the next two weeks, I'd like to work on documenting the blockchain format.  In particular, going from a block as a sequence of bytes; to fields with particular data types (uint32, hash); to semantic information about entities like accounts, balances, delegates, orders, and votes.  To keep the scope manageable, I'd like to limit my contribution to focusing on parsing the serialized blockchain.

I'll include information on the following:

- Byte-by-byte documentation of the serialized block format
- Constraints between various fields (e.g. the value in each block's parent block hash field must be equal to the value obtained by computing the hash of the serialization of the parent block).
- Reasons for design decisions
- Genesis-block parameters that can easily be tweaked
- Highlight major BitShares Toolkit features that either mimic features of other cryptocoins, or are different from other cryptocoins
- Describe in detail the implementation of high-level semantic nouns and verbs (e.g.:  What is a short position and how do you cover it?  How do we make TITAN transactions invisible?)

I'll post here with the Github URL when I start.

Also, since the bounty was posted before snapshot was taken, I'd like to ask if the bounty will include the BTSX spawned by the 500 PTS?

Hopefully this post satisfies the "scope and requirements" laid out in the opening post, and we can change from pending to active.

I'll pay $5000 worth of PTS at the time of completion.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc

Over the next two weeks, I'd like to work on documenting the blockchain format.  In particular, going from a block as a sequence of bytes; to fields with particular data types (uint32, hash); to semantic information about entities like accounts, balances, delegates, orders, and votes.  To keep the scope manageable, I'd like to limit my contribution to focusing on parsing the serialized blockchain.

I'll include information on the following:

- Byte-by-byte documentation of the serialized block format
- Constraints between various fields (e.g. the value in each block's parent block hash field must be equal to the value obtained by computing the hash of the serialization of the parent block).
- Reasons for design decisions
- Genesis-block parameters that can easily be tweaked
- Highlight major BitShares Toolkit features that either mimic features of other cryptocoins, or are different from other cryptocoins
- Describe in detail the implementation of high-level semantic nouns and verbs (e.g.:  What is a short position and how do you cover it?  How do we make TITAN transactions invisible?)

I'll post here with the Github URL when I start.

Also, since the bounty was posted before snapshot was taken, I'd like to ask if the bounty will include the BTSX spawned by the 500 PTS?

Hopefully this post satisfies the "scope and requirements" laid out in the opening post, and we can change from pending to active.
+5% for the initiative ..

just my 2 PTS:

 - could you use the bitshares wiki?
 - I like how the bitcoin guys are writing it up: https://bitcoin.org/en/developer-guide

if you need assistance (maybe drawing some pictures/blockdiagrams) I can give you a hand ..

Offline theoretical


Over the next two weeks, I'd like to work on documenting the blockchain format.  In particular, going from a block as a sequence of bytes; to fields with particular data types (uint32, hash); to semantic information about entities like accounts, balances, delegates, orders, and votes.  To keep the scope manageable, I'd like to limit my contribution to focusing on parsing the serialized blockchain.

I'll include information on the following:

- Byte-by-byte documentation of the serialized block format
- Constraints between various fields (e.g. the value in each block's parent block hash field must be equal to the value obtained by computing the hash of the serialization of the parent block).
- Reasons for design decisions
- Genesis-block parameters that can easily be tweaked
- Highlight major BitShares Toolkit features that either mimic features of other cryptocoins, or are different from other cryptocoins
- Describe in detail the implementation of high-level semantic nouns and verbs (e.g.:  What is a short position and how do you cover it?  How do we make TITAN transactions invisible?)

I'll post here with the Github URL when I start.

Also, since the bounty was posted before snapshot was taken, I'd like to ask if the bounty will include the BTSX spawned by the 500 PTS?

Hopefully this post satisfies the "scope and requirements" laid out in the opening post, and we can change from pending to active.
BTS- theoretical / PTS- PZxpdC8RqWsdU3pVJeobZY7JFKVPfNpy5z / BTC- 1NfGejohzoVGffAD1CnCRgo9vApjCU2viY / the delegate formerly known as drltc / Nothing said on these forums is intended to be legally binding / All opinions are my own unless otherwise noted / Take action due to my posts at your own risk

Offline vertoe

  • Jr. Member
  • **
  • Posts: 30
  • i'm here
    • View Profile
There is a work in progress, I think this bounty is better done cooperatively than competitively. Equal expected return per hour but higher chance of getting the bounty before feb 28th

https://github.com/nmushegian/BitShares/blob/spec/doc/spec.md

Yes I've seen this. I didnt mean to start a competition here. I just dont see anything happening for several days now...

I dont want to do this. But If I start working on bitshares I can do it because I need it.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
There is a work in progress, I think this bounty is better done cooperatively than competitively. Equal expected return per hour but higher chance of getting the bounty before feb 28th

https://github.com/nmushegian/BitShares/blob/spec/doc/spec.md
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline vertoe

  • Jr. Member
  • **
  • Posts: 30
  • i'm here
    • View Profile
If nobody completes it this week i will start working on this bounty because i need the specification really bad :)


Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline vertoe

  • Jr. Member
  • **
  • Posts: 30
  • i'm here
    • View Profile
Bump. Whats the status on this? I need this.  8)

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
I see so you want it down to the byte level. OK. Will work on this more. Another workers around? Let's collaborate.

Offline bytemaster

I checked in a version that finishes (hopefully) all the explanation of the classes in block.hpp and transaction.hpp.
Please guide me for more work.
https://github.com/nmushegian/BitShares/blob/master/doc/spec.md

For an example of you Bitcoin documented this:
https://en.bitcoin.it/wiki/Protocol_specification

It would be very difficult for me to build BitShares X starting only with the spec you have provided.

Ok so we're talking about the whole protocol specification, not only blockchain structure.

The blockchain structure is the protocol, the messages for communicating blocks, transactions, over the wire etc are not considered part of this.  Someone should be able to follow these direction to build and serialize a valid transaction, sign it, and validate a block chain.   A good start would be to fully document the serialization and fields in an easy to understand way. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
I checked in a version that finishes (hopefully) all the explanation of the classes in block.hpp and transaction.hpp.
Please guide me for more work.
https://github.com/nmushegian/BitShares/blob/master/doc/spec.md

For an example of you Bitcoin documented this:
https://en.bitcoin.it/wiki/Protocol_specification

It would be very difficult for me to build BitShares X starting only with the spec you have provided.

Ok so we're talking about the whole protocol specification, not only blockchain structure.

Offline bytemaster

I checked in a version that finishes (hopefully) all the explanation of the classes in block.hpp and transaction.hpp.
Please guide me for more work.
https://github.com/nmushegian/BitShares/blob/master/doc/spec.md

For an example of you Bitcoin documented this:
https://en.bitcoin.it/wiki/Protocol_specification

It would be very difficult for me to build BitShares X starting only with the spec you have provided.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
I checked in a version that finishes (hopefully) all the explanation of the classes in block.hpp and transaction.hpp.
Please guide me for more work.
https://github.com/nmushegian/BitShares/blob/master/doc/spec.md

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
bytemaster you said you wanted to help bootstrap this, can you say some more words?
I'm going to work on merging in whatever parts of naturalog's work that I can and then the most up-to-date work will be in the spec branch on my repo.

is it ready already? can i continue on your branch?

Yes, go ahead
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

bytemaster you said you wanted to help bootstrap this, can you say some more words?
I'm going to work on merging in whatever parts of naturalog's work that I can and then the most up-to-date work will be in the spec branch on my repo.

is it ready already? can i continue on your branch?

I am working on the blockchain today. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
bytemaster you said you wanted to help bootstrap this, can you say some more words?
I'm going to work on merging in whatever parts of naturalog's work that I can and then the most up-to-date work will be in the spec branch on my repo.

is it ready already? can i continue on your branch?

Offline bytemaster

Yes I can.  I am busy on keyhotee release right now


Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
bytemaster you said you wanted to help bootstrap this, can you say some more words?
I'm going to work on merging in whatever parts of naturalog's work that I can and then the most up-to-date work will be in the spec branch on my repo.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

bytemaster, can you please supply some explanation about the block state structure?
toast, do you plan working on this doc? Otherwise I'll work on my fork.
see my work so far here
https://github.com/naturalog/BitShares/blob/master/doc/BitSharesBlockchainDesign.md

The block_state structure does not exist in the current github repo. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

Hey, today I want to help bootstrap this process some. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
I saw the doc but it barely had anything at the time. Let's pick one repo and work there. I'm fine with using yours if you do the work of merging (but you should check out a new branch IMO, not use master). Conversely, I'll gladly do the merge if we want to work in my branch.

https://github.com/nmushegian/BitShares/blob/spec/doc/spec.md
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
bytemaster, can you please supply some explanation about the block state structure?
toast, do you plan working on this doc? Otherwise I'll work on my fork.
see my work so far here
https://github.com/naturalog/BitShares/blob/master/doc/BitSharesBlockchainDesign.md
« Last Edit: January 02, 2014, 12:14:43 pm by naturalog »

Offline bytemaster

Hijack!

I have ported what naturalog has written so far to markdown and put it on github ("spec" branch). I'm gonna be working on this / BTS explorer tonight and didn't have access to the repo. Also I added naturalog as a contributor (both "naturalog" and "ohadasor").

https://github.com/nmushegian/BitShares/blob/spec/doc/spec.md

bitshare explorer bounty thread
https://bitsharestalk.org/index.php?topic=1829.0;topicseen


edit: bytemaster, since this is a separate branch, want to just pull it into the II/BitShares repo right now?
edit 2: nvm then you need to grant repo permissions

I am going to make this my priority task once I get Keyhotee ID registration done.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
Hijack!

I have ported what naturalog has written so far to markdown and put it on github ("spec" branch). I'm gonna be working on this / BTS explorer tonight and didn't have access to the repo. Also I added naturalog as a contributor (both "naturalog" and "ohadasor").

https://github.com/nmushegian/BitShares/blob/spec/doc/spec.md

bitshare explorer bounty thread
https://bitsharestalk.org/index.php?topic=1829.0;topicseen


edit: bytemaster, since this is a separate branch, want to just pull it into the II/BitShares repo right now?
edit 2: nvm then you need to grant repo permissions
« Last Edit: January 01, 2014, 12:08:20 am by toast »
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

Ack. May I suggest using markdown instead of HTML? There are plenty render-md-as-html tools, and in the meantime we can have a readable format which github will render nicely for us.

Sounds like a great idea, admits all requirements as can be seen here https://help.github.com/articles/github-flavored-markdown

I would expect there to be regular questions and a place where you are publishing your work?
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
Ack. May I suggest using markdown instead of HTML? There are plenty render-md-as-html tools, and in the meantime we can have a readable format which github will render nicely for us.

Sounds like a great idea, admits all requirements as can be seen here https://help.github.com/articles/github-flavored-markdown
« Last Edit: December 29, 2013, 02:57:58 am by naturalog »

Offline bytemaster

The more professional the look the better.  The easier to maintain the better.  Must work well with version control and images.


Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
Interesting job. I'm starting to work on it.
How do you imagine the document?
Explaining in fluent English the classes and their relations, or more a reference-type document giving details on every class?
Initial version can be found here https://github.com/naturalog/BitShares/blob/master/doc/BitSharesBlockchainDesign.html

Ack. May I suggest using markdown instead of HTML? There are plenty render-md-as-html tools, and in the meantime we can have a readable format which github will render nicely for us.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

I would like the spec to be language independent.    Talk about the data format and meaning rather than class names. 




Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline naturalog

  • Newbie
  • *
  • Posts: 13
    • View Profile
Interesting job. I'm starting to work on it.
How do you imagine the document?
Explaining in fluent English the classes and their relations, or more a reference-type document giving details on every class?
Initial version can be found here https://github.com/naturalog/BitShares/blob/master/doc/BitSharesBlockchainDesign.html
« Last Edit: December 29, 2013, 01:48:46 am by naturalog »

Offline bytemaster

I referred forum member naturalog to this bounty.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bytemaster

So far BitShares has been developed with a cowboy coding mentality.  I would design, document, and implement as I went.  We are now looking to grow this into something that can be maintained by the community and understood by all.  To this end I would like to produce a professional quality design document that is maintained as a website that can be updated by accepting pull requests via Github.    This document should be content focused and built for clarity.   Someone should be able to take this specification and implement a working BitShares blockchain with a high degree of compatibility with other independent implementations.

I have already defined the blockchain and many unit tests and there exists documentation embedded in the code right now.  I would like to capture the ideas expressed in the code and make them available and accessible to everyone.   I will be available to answer questions here in the forum about anything that is unclear.

Because BitShares has not been finalized at this point, the process of documenting the current design should help us explore undiscovered corner cases.   

This is a cooperative bounty and all submissions must be developed publicly.  I want to encourage cooperation so if you copy contributions from other members be sure to agree on how to split the bounty. If the accepted design document has any disputes about how the bounty is to be divided then Invictus will decide and take a 25% cut.  In other words, it is in everyones interest to fairly access their own contribution and resolve disputes.

This bounty is PENDING until all questions regarding the scope and requirements of this bounty can be settled.  At that point we will lock in the terms and begin the bounty.  Of course, getting a head start will benefit all.

There is also a referral bounty paid to the individual who refers anyone who wins the bounty. 

https://github.com/InvictusInnovations/BitShares/blob/master/include/bts/blockchain/block.hpp
https://github.com/InvictusInnovations/BitShares/blob/master/include/bts/blockchain/outputs.hpp

« Last Edit: August 12, 2014, 10:37:43 am by cass »
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.