Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: Introducing BitShares Object Graph  (Read 2755 times)

0 Members and 1 Guest are viewing this topic.

Offline bytemaster

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 arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BTS: arhag
  • GitHub: arhag
Re: Introducing BitShares Object Graph
« Reply #1 on: December 24, 2014, 07:19:06 PM »
Whoa, edges are also objects (meaning nodes/vertices)?

Can you give me an example of why that is necessary or would be useful?

So if I have:

(N1) --E1--> (N2) ---E2---> (N3)
        ^            |
        |-----E3-----|

First is this an acceptable "graph" in BitShares? And who "owns" edge 3? The source "node" of edge 3 is edge 2. The source node of edge 2 is node 2. So does that mean that the owners of N2 control edges 2 and 3?


Offline toast

Re: Introducing BitShares Object Graph
« Reply #2 on: December 24, 2014, 07:22:19 PM »
Whoa, edges are also objects (meaning nodes/vertices)?

Can you give me an example of why that is necessary or would be useful?

It's not necessary and maybe not useful, but we're not going to add complexity to remove a feature =)
Quote
So if I have:

(N1) --E1--> (N2) ---E2---> (N3)
        ^            |
        |-----E3-----|

First is this an acceptable "graph" in BitShares? And who "owns" edge 3? The source "node" of edge 3 is edge 2. The source node of edge 2 is node 2. So does that mean that the owners of N2 control edges 2 and 3?

Edge objects are always defined to be owned by the owner of the "from" object. So you got it right.
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

Re: Introducing BitShares Object Graph
« Reply #3 on: December 24, 2014, 07:22:46 PM »
And edge cannot be a source Vertex only a destination vertex. 
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

Re: Introducing BitShares Object Graph
« Reply #4 on: December 24, 2014, 07:23:40 PM »
And edge cannot be a source Vertex only a destination vertex.

Well right now an edge can be a source, shall we change it?
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

Re: Introducing BitShares Object Graph
« Reply #5 on: December 24, 2014, 07:25:09 PM »

And edge cannot be a source Vertex only a destination vertex.

Well right now an edge can be a source, shall we change it?

You could make validation non-Constant time Because you may have to look back source source source source owner. 
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

Re: Introducing BitShares Object Graph
« Reply #6 on: December 24, 2014, 07:28:00 PM »

And edge cannot be a source Vertex only a destination vertex.

Well right now an edge can be a source, shall we change it?

You could make validation non-Constant time Because you may have to look back source source source source owner.

There's a recursion depth limit, which I don't think we can remove because an object can be owned by another object which can be owned by another...
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 arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BTS: arhag
  • GitHub: arhag
Re: Introducing BitShares Object Graph
« Reply #7 on: December 24, 2014, 07:33:10 PM »
It's not necessary and maybe not useful, but we're not going to add complexity to remove a feature =)

So it seems like the primitives in the BitShares Object Graph are node and edge objects which are very similar to one another (both can have arbitrary JSON associated) with the following important differences:
  • The edge object needs a source object (perhaps only restricted to node objects, TBD) and a destination object while the node object does not have those things.
  • The node object has an ACL (multisig owners and multisig updaters) defined on it while the edge object does not. These permissions are the source that propagate the ACL to the edges spreading out from the node.

And edge cannot be a source Vertex only a destination vertex. 

If that is the case, you should fix the following statement in your blog post.
Quote
This means that you can construct an edge from a node to an edge or from an edge to an edge.

sumantso

  • Guest
Re: Introducing BitShares Object Graph
« Reply #8 on: December 24, 2014, 07:35:46 PM »
Question: Why did Ethereum chose that model? There has to be some benefit.

Can you add a small section where it directly shows the difference between Bitcoin and Bitshares (like we have a comparison between Bitshares and Ethereum)?

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 719
    • View Profile
Re: Introducing BitShares Object Graph
« Reply #9 on: December 24, 2014, 07:38:32 PM »
I have no idea what's going on, but I'm excited  :D

Offline Rune

  • Hero Member
  • *****
  • Posts: 1120
    • View Profile
Re: Introducing BitShares Object Graph
« Reply #10 on: December 24, 2014, 07:44:45 PM »
Is this the last big addition to the protocol before 1.0? Looks really interesting and it will be great if we can advertise that we have a better data structure than ethereum.

Offline liondani

Re: Introducing BitShares Object Graph
« Reply #11 on: December 24, 2014, 07:48:53 PM »
I buy more BTS and I promise to short all active bitAssets...

PS BM know's how to make Christmas gifts !!!
  https://bitshares.OPENLEDGER.info/?r=GREECE  | You are in Control | BUY | SELL | SHORT | SWAP | LOAN | TRADE |  

sumantso

  • Guest
Re: Introducing BitShares Object Graph
« Reply #12 on: December 24, 2014, 07:49:39 PM »
Is this the last big addition to the protocol before 1.0? Looks really interesting and it will be great if we can advertise that we have a better data structure than ethereum.

I was posting it at BTCtalk and I was careful to avoid the better than Ethereum line (tempting as it was). I think at this point we should just focus on positives and let them draw the better than xyz conclusion (also one of the reason I want to pitch them BitBTC as something which enhances BTC, rather than trying to sell them BTS saying how they should abandon mining).

You can pitch in in this thread or create a new topic https://bitcointalk.org/index.php?topic=895637.msg9937028#msg9937028
« Last Edit: December 24, 2014, 07:51:17 PM by sumantso »

Offline Ander

  • Hero Member
  • *****
  • Posts: 3507
    • View Profile
  • BTS: Ander
Re: Introducing BitShares Object Graph
« Reply #13 on: December 24, 2014, 07:59:38 PM »
"The Object Graph will become the foundation for the future BitShares scripting environment. Every scripting language has a data model and this data model has a dramatic impact on the efficiency of scripting.

Ethereum has adopted a very simplistic database, a key-value store. A key-value store is a fundamental building block of all databases and is turing complete. By adopting a higher level data representation we can greatly accelerate many operations that would be expensive using a key-value store. It is like the difference between programing in assembly vs a higher level language like Java Script. We can optimize the graph database that the scripting environment runs on in ways that you would be unable to optimize a key-value store directly. In other words, Ethereum will force developers to build a graph database within their scripting environment on top of their key-value primitve. This will mean the graph database will be interpreted rather than fully optimized and compiled. "


I think we just went to Crypto 3.0. :)
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

julian1

  • Guest
Re: Introducing BitShares Object Graph
« Reply #14 on: December 24, 2014, 08:21:49 PM »
Very interesting. I noticed the object manipulation api before - assume it's the same?

blockchain_get_object <id>                                                                         
wallet_object_create <account> [user_data] [m] [owners]                                             
wallet_object_list <account> 

 

Google+