BitShares Forum

Main => General Discussion => Topic started by: bytemaster on December 24, 2014, 06:36:18 pm

Title: Introducing BitShares Object Graph
Post by: bytemaster on December 24, 2014, 06:36:18 pm
http://bytemaster.bitshares.org/article/2014/12/24/Introducing-BitShares-Object-Graph/
Title: Re: Introducing BitShares Object Graph
Post by: arhag 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?

Title: Re: Introducing BitShares Object Graph
Post by: toast 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.
Title: Re: Introducing BitShares Object Graph
Post by: bytemaster on December 24, 2014, 07:22:46 pm
And edge cannot be a source Vertex only a destination vertex. 
Title: Re: Introducing BitShares Object Graph
Post by: toast 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?
Title: Re: Introducing BitShares Object Graph
Post by: bytemaster 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. 
Title: Re: Introducing BitShares Object Graph
Post by: toast 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...
Title: Re: Introducing BitShares Object Graph
Post by: arhag 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:

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.
Title: Re: Introducing BitShares Object Graph
Post by: sumantso 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)?
Title: Re: Introducing BitShares Object Graph
Post by: fluxer555 on December 24, 2014, 07:38:32 pm
I have no idea what's going on, but I'm excited  :D
Title: Re: Introducing BitShares Object Graph
Post by: Rune 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.
Title: Re: Introducing BitShares Object Graph
Post by: liondani 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 !!!
Title: Re: Introducing BitShares Object Graph
Post by: sumantso 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
Title: Re: Introducing BitShares Object Graph
Post by: Ander 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. :)
Title: Re: Introducing BitShares Object Graph
Post by: julian1 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> 
Title: Re: Introducing BitShares Object Graph
Post by: Crossover on December 24, 2014, 08:36:50 pm
very interesting, how fast its gonna work compared to relational databases from MS/ibm?

found answer in wiki:
"Compared with relational databases, graph databases are often faster for associative data sets[citation needed], and map more directly to the structure of object-oriented applications. They can scale more naturally to large data sets as they do not typically require expensive join operations. As they depend less on a rigid schema, they are more suitable to manage ad hoc and changing data with evolving schemas. Conversely, relational databases are typically faster at performing the same operation on large numbers of data elements.

Graph databases are a powerful tool for graph-like queries, for example computing the shortest path between two nodes in the graph. Other graph-like queries can be performed over a graph database in a natural way (for example graph's diameter computations or community detection)."
Title: Re: Introducing BitShares Object Graph
Post by: jsidhu on December 24, 2014, 08:50:10 pm
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?
Title: Re: Introducing BitShares Object Graph
Post by: Crossover on December 24, 2014, 09:08:25 pm
can you explain, graph data will be stored on blockchain, this mean that if some of delegate servers go down nothing will be missed?
Title: Re: Introducing BitShares Object Graph
Post by: toast on December 24, 2014, 09:12:29 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.

The primitive is only "object". Edges are not any more special than other "special" objects like accounts, assets, auctions, sites, etc - they just have some extra validation.
Title: Re: Introducing BitShares Object Graph
Post by: Pheonike on December 24, 2014, 09:30:13 pm

What are the scaling limitations if any?
Title: Re: Introducing BitShares Object Graph
Post by: bobmaloney on December 24, 2014, 09:43:19 pm
Can somebody offer the less technical of us a quick explanation of the importance and functionality of object graphs?

Thanks.

*Edit: Overlooked OP

http://bytemaster.bitshares.org/article/2014/12/24/Introducing-BitShares-Object-Graph/
Title: Re: Introducing BitShares Object Graph
Post by: arhag on December 24, 2014, 09:49:55 pm
The primitive is only "object". Edges are not any more special than other "special" objects like accounts, assets, auctions, sites, etc - they just have some extra validation.

Looking through the code I see there is a clear distinction between an actual edge (in the graph sense) implemented with bts::blockchain::edge_record type, which has from and to fields, and the concept of the edge_object discussed in this thread and in bytemaster's blog post, implemented with the bts::blockchain:object_record type, which has the actual data and the _owners field or a pointer to use the _owners of another object (which I presume points to the source node of the "edge").

My question is if in the original graph example I gave in this thread the E1 "edge" would be represented as object_record with obj_type == edge_object and two edge_records (one from N1 to E1 and the other from E1 to N2), or would there be a single edge_record going from N1 to N2 that somehow gets associated with an object_record with obj_type == edge_object.

If it is the former, can we just use regular graph terminology and call the "edges" in the BitShares Object Graph special vertices (perhaps named edge_objects). In which case, the actual edges (in graph terminology) would have no information associated with them other than the from and to fields (no weights for example). It would also not make any sense to have these edges go directly from a vertex where obj_type != edge_object to a vertex where obj_type != edge_object. The edge_objects would be special from all other vertices in the graph in the sense that they have particular validation semantics and can only have one outgoing edge (assuming you guys decide to not allow an "edge" be the source of an "edge" as bytemaster suggested because of the non-constant time validation consequence).

Or you know, stop trying to make edges point to other edges (unless there is a good reason for this feature), and build the graph database the traditional way...
Title: Re: Introducing BitShares Object Graph
Post by: charleshoskinson on December 24, 2014, 09:55:13 pm
lol, I recall mentioning graph DB here some time ago. Good work dan
Title: Re: Introducing BitShares Object Graph
Post by: toast on December 24, 2014, 09:57:44 pm
The primitive is only "object". Edges are not any more special than other "special" objects like accounts, assets, auctions, sites, etc - they just have some extra validation.

Looking through the code I see there is a clear distinction between an actual edge (in the graph sense) implemented with bts::blockchain::edge_record type, which has from and to fields, and the concept of the edge_object discussed in this thread and in bytemaster's blog post, implemented with the bts::blockchain:object_record type, which has the actual data and the _owners field or a pointer to use the _owners of another object (which I presume points to the source node of the "edge").

My question is if in the original graph example I gave in this thread the E1 "edge" would be represented as object_record with obj_type == edge_object and two edge_records (one from N1 to E1 and the other from E1 to N2), or would there be a single edge_record going from N1 to N2 that somehow gets associated with an object_record with obj_type == edge_object.

If it is the former, can we just use regular graph terminology and call the "edges" in the BitShares Object Graph special vertices (perhaps named edge_objects). In which case, the actual edges (in graph terminology) would have no information associated with them other than the from and to fields (no weights for example). It would also not make any sense to have these edges go directly from a vertex where obj_type != edge_object to a vertex where obj_type != edge_object. The edge_objects would be special from all other vertices in the graph in the sense that they have particular validation semantics and can only have one outgoing edge (assuming you guys decide to not allow an "edge" be the source of an "edge" as bytemaster suggested because of the non-constant time validation consequence).

Or you know, stop trying to make edges point to other edges (unless there is a good reason for this feature), and build the graph database the traditional way...

There is "object_record" and all other object types are an object stored in the object record (data field).
Some objects are special and require extra validation. Edges are not more special than accounts or assets - they need extra validation which is why we don't just make edges into vanilla user objects with no data.  edit: eventually and ideally the only special object will be type "script" and its special validation is "try to run the script".

Quote
E1 "edge" would be represented as object_record with obj_type == edge_object and two edge_records (one from N1 to E1 and the other from E1 to N2), or would there be a single edge_record going from N1 to N2 that somehow gets associated with an object_record with obj_type == edge_object.

Neither, there is a single object_record whose type is edge_object and whose data is E1. Making "edges" not be allowed to come "from" edges adds validation logic. That's fine because we're switching over the object type anyway, but it's not somehow more natural or simple.
Title: Re: Introducing BitShares Object Graph
Post by: nomoreheroes7 on December 24, 2014, 10:10:23 pm
This is the most confusing exciting news I've heard all week.

Better than ethereum is enough for me.

 +5%
Title: Re: Introducing BitShares Object Graph
Post by: jsidhu on December 24, 2014, 10:24:03 pm
lol, I recall mentioning graph DB here some time ago. Good work dan
Yes charles maybe everything you wanted in a coin was right here all along :)
Title: Re: Introducing BitShares Object Graph
Post by: bytemaster on December 24, 2014, 10:29:48 pm

lol, I recall mentioning graph DB here some time ago. Good work dan
Yes charles maybe everything you wanted in a coin was right here all along :)

To be fair I was working with graph databases prior to starting bitshares. 
Title: Re: Introducing BitShares Object Graph
Post by: charleshoskinson on December 24, 2014, 11:10:13 pm
I also remember you spent a lot of time thinking about DHTs.  It's a shame we never had a convo about graph theory. We probably could have designed something cool.
Title: Re: Introducing BitShares Object Graph
Post by: Thom on December 24, 2014, 11:41:53 pm
Wow! What a monster load of info to process!!!

This is where my extensive relational DB skills are more of a hindrance than an asset, as the NoSQL model is so radically different. I read the MondoDB page you referred to and downloaded the whitepaper which I will read in the next couple of days.

I've been wondering what the "graph" terminology in bitShares "key-graph" was, now I understand it's root.

At an intuitive level I can see how the NoSQL graph DB model is a perfect fit for blockchain applications, but it also raises concerns b/c of how cloud computing is involved.

Cloud based apps & storage today is the exact opposite of decentralization, moving control of my data away from local resources to centralized resources controlled by the likes of google or other huge server farm companies.

Now that I've been introduced to the concept of NoSQL databases, I can see that centralized view of the cloud isn't necessarily accurate, as "the cloud" could be implemented as a heavily distributed system of NoSQL database servers with diverse ownership so one company may not in fact be able to control the data. To what extent a company like google has full control over all of the servers of such a distributed NoSQL model I don't know (I do have concerns about that however).

What I DO know is if my data is stored in the cloud I have less control over it than if it's on my local hard drive. This of course doesn't address the opportunity costs for capabilities I'd miss out on by sequestering my data locally.

Its really interesting to think about the NoSQL graph model. Coupling that to the blockchain in many respects is just an extension of that model, the primary difference is that it uses cryptography and peer to peer technology to perform distribution / replication in a highly secure manor.

Absolutely Awesome! Genius!
Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 25, 2014, 12:49:16 am
http://bytemaster.bitshares.org/article/2014/12/24/Introducing-BitShares-Object-Graph/
+5% This is excellent and of bigger importance than most people realize.
Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 25, 2014, 12:53:46 am
This is the most confusing exciting news I've heard all week.

Better than ethereum is enough for me.

 +5%

My take on it as someone who knows C++ enough but who is not a rock star developer is that one of the keys to success is having an attractive developer environment. High level developers who are interested in scripting will find Object Graph to be extremely important. Object Graph can do most of what people will want to do and lay the foundation which can be built upon.

I think this give Bitshares the edge now over Ethereum. Ethereum's development environment is too complicated and needs to be abstracted. The community which attracts the top developer talent in the short term and the largest community of developers in the long term will in my opinion grow the fastest provided the incentives and marketing are right.

Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 25, 2014, 01:02:22 am
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

Title: Re: Introducing BitShares Object Graph
Post by: toast on December 25, 2014, 01:05:15 am
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

They have serpent and solidity working and full IDEs in development. We will not beat them as a smart contract platform unless we outgrow them first. More likely we will just pull in their VM once both of our systems are more mature.

We are basically all-in on BitAsset adoption and very basic financial services.
Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 25, 2014, 01:10:37 am
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

They have serpent and solidity working and full IDEs in development. We will not beat them as a smart contract platform unless we outgrow them first. More likely we will just pull in their VM once both of our systems are more mature.

We are basically all-in on BitAsset adoption and very basic financial services.

Is this due to lack of resources? That is the only advantage they seem to have right now.

They do have the VM and will be first to market with scripting but all that does is allow the Bitshares team to take their best ideas and one up them. The only reasons I can see this not happening is resource constraints or time constraints.

Solidity is interesting. Was not aware of that.
Title: Re: Introducing BitShares Object Graph
Post by: jamesc on December 25, 2014, 03:23:04 am
It is a start: http://neo4j.com/blog/prototyping-a-graph-database-rvb-2014/   I would like to see more examples..
Title: Re: Introducing BitShares Object Graph
Post by: jamesc on December 25, 2014, 03:39:11 am


C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.
CoffeeScript is even easier.  It is basically 1 for 1 with JavaScript and gets rid of most of the unnecessary work. 

Title: Re: Introducing BitShares Object Graph
Post by: jsidhu on December 25, 2014, 04:41:24 am


C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.
CoffeeScript is even easier.  It is basically 1 for 1 with JavaScript and gets rid of most of the unnecessary work.
I gotta learn that one
Title: Re: Introducing BitShares Object Graph
Post by: idealist on December 25, 2014, 05:03:26 am
I'm a FileMaker database developer.  This sounds a lot like the way FileMaker stores relationships in a relationship graph.

Very cool that this will be part of Bitshares!
Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 25, 2014, 06:09:09 am


C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.
CoffeeScript is even easier.  It is basically 1 for 1 with JavaScript and gets rid of most of the unnecessary work.

More people know Javascript but generally you want the syntax and development process to be as simple as possible.
Title: Re: Introducing BitShares Object Graph
Post by: seusnow on December 25, 2014, 08:40:46 am
brag is much more easy than doing.

New year is coming.

where is pts, bts and dns? where is the new wallet.

where is vote, music, play?

Don't make any promise before you have done it...



Title: Re: Introducing BitShares Object Graph
Post by: wackou on December 25, 2014, 09:21:36 am
wow, just wow! Taking the 2 technologies from the last 10 years that really got me interested (graph db and blockchain) and merging them together, what an incredible christmas gift! :D

Can't say how excited I am and impatient to see what people will be able to come up with using this new, groundbreaking platform upon which to build things. 2015 will be awesome!
Title: Re: Introducing BitShares Object Graph
Post by: oldman on December 25, 2014, 09:52:25 am
http://bytemaster.bitshares.org/article/2014/12/24/Introducing-BitShares-Object-Graph/
+5% This is excellent and of bigger importance than most people realize.

I follow all of the major crypto tech quite closely and I can say without reservation that Bitshares is in a completely different league.

How is it the market completely ignores these types of announcements? I immediately bought more BTS, most folks sold.

Huh?
Title: Re: Introducing BitShares Object Graph
Post by: Rune on December 25, 2014, 01:15:37 pm
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

They have serpent and solidity working and full IDEs in development. We will not beat them as a smart contract platform unless we outgrow them first. More likely we will just pull in their VM once both of our systems are more mature.

We are basically all-in on BitAsset adoption and very basic financial services.

If we are all-in on bitassets then shouldn't our priority be to get the protocol stable so we can launch 1.0 and have no further hard forks a for a long time? Only then will we be able to get gateways, our biggest priority.

We already have the killer app, but it's super difficult to get hold of because gateways don't want to integrate with us because our system is still unstable. I think we should have just focused on getting the last UIA changes implemented, and then only focus on UX for the next 6 months for the amazing products we already have. We don't need scripting in the short term, there's not any evidence in the market that it's actually profitable or useful, only hype.

I dont think we should be beginning on working on even more complicated stuff now if it doesn't actually give us any marketing advantage over ethereum. It makes no sense from a business perspective. We need to get our product ready, and then launch it.
Title: Re: Introducing BitShares Object Graph
Post by: toast on December 25, 2014, 02:58:51 pm
If we are all-in on bitassets then shouldn't our priority be to get the protocol stable so we can launch 1.0 and have no further hard forks a for a long time? Only then will we be able to get gateways, our biggest priority.

We already have the killer app, but it's super difficult to get hold of because gateways don't want to integrate with us because our system is still unstable. I think we should have just focused on getting the last UIA changes implemented, and then only focus on UX for the next 6 months for the amazing products we already have. We don't need scripting in the short term, there's not any evidence in the market that it's actually profitable or useful, only hype.

I dont think we should be beginning on working on even more complicated stuff now if it doesn't actually give us any marketing advantage over ethereum. It makes no sense from a business perspective. We need to get our product ready, and then launch it.

I agree 100%.
Title: Re: Introducing BitShares Object Graph
Post by: muse-umum on December 25, 2014, 03:02:55 pm
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

They have serpent and solidity working and full IDEs in development. We will not beat them as a smart contract platform unless we outgrow them first. More likely we will just pull in their VM once both of our systems are more mature.

We are basically all-in on BitAsset adoption and very basic financial services.

If we are all-in on bitassets then shouldn't our priority be to get the protocol stable so we can launch 1.0 and have no further hard forks a for a long time? Only then will we be able to get gateways, our biggest priority.

We already have the killer app, but it's super difficult to get hold of because gateways don't want to integrate with us because our system is still unstable. I think we should have just focused on getting the last UIA changes implemented, and then only focus on UX for the next 6 months for the amazing products we already have. We don't need scripting in the short term, there's not any evidence in the market that it's actually profitable or useful, only hype.

I dont think we should be beginning on working on even more complicated stuff now if it doesn't actually give us any marketing advantage over ethereum. It makes no sense from a business perspective. We need to get our product ready, and then launch it.
+5%
Title: Re: Introducing BitShares Object Graph
Post by: bytemaster on December 25, 2014, 03:16:20 pm

brag is much more easy than doing.

New year is coming.

where is pts, bts and dns? where is the new wallet.

where is vote, music, play?

Don't make any promise before you have done it...

There is no brag.  PTS/DNS were killed by official i3 support.

Some people like discussion before it is implemented.  If you do not feel you can come up with something worth adding to the discussion then excercise your option of listening and not just opening your mouth?

It is already implemented on the test network. 
Title: Re: Introducing BitShares Object Graph
Post by: bubble789 on December 25, 2014, 04:17:29 pm
I assume this is one of the final pieces before we have the final 1.0 protocol. Am i right?
Title: Re: Introducing BitShares Object Graph
Post by: Rune on December 25, 2014, 07:17:07 pm
I assume this is one of the final pieces before we have the final 1.0 protocol. Am i right?

Scripting wasn't planned to be implemented in 1.0. This is also just the data structure and wont actually mean that scripting will be functional according to toast. Dont understand why its being put on the testnet but maybe only some of the devs are working on finishing off 1.0 while others are already working on the future updates. I guess that is a good sign meaning that 1.0 will be here relatively soon, probably end of jan.
Title: Re: Introducing BitShares Object Graph
Post by: lovejoy on December 25, 2014, 07:39:08 pm
http://bytemaster.bitshares.org/article/2014/12/24/Introducing-BitShares-Object-Graph/

Awesome!  (as in I am filled with awe)

Although some of the technical details are lost to me the conceptual implications are scintillating!

I think we just went to Crypto 3.0. :)

^^^  8)
Title: Re: Introducing BitShares Object Graph
Post by: santaclause102 on December 25, 2014, 10:29:26 pm
Some questions:

Would the data be stored on the blockchain? Wouldn't that lead to blockchain bloat? Take the example of a Forum of linked Posts: Would all posts be stored on the blockchain? Or is it that only the identities, trust levels of identities would be stored on chain?

Since domain names and voting seem to be being built based on the bitshares graph database, would it make sense to say that the BitShares DAC consists of three parts: BitAssets, UIA, graph database applications?

Title: Re: Introducing BitShares Object Graph
Post by: bytemaster on December 26, 2014, 12:10:23 am

Some questions:

Would the data be stored on the blockchain? Wouldn't that lead to blockchain bloat? Take the example of a Forum of linked Posts: Would all posts be stored on the blockchain? Or is it that only the identities, trust levels of identities would be stored on chain?

Since domain names and voting seem to be being built based on the bitshares graph database, would it make sense to say that the BitShares DAC consists of three parts: BitAssets, UIA, graph database applications?

The blockchain size does not matter.  Transaction fees will prioritize use.    Yes all data is in blockchain so it can be referenced by future scripts. 
Title: Re: Introducing BitShares Object Graph
Post by: bubble789 on December 26, 2014, 03:00:57 am
I assume this is one of the final pieces before we have the final 1.0 protocol. Am i right?

Scripting wasn't planned to be implemented in 1.0. This is also just the data structure and wont actually mean that scripting will be functional according to toast. Dont understand why its being put on the testnet but maybe only some of the devs are working on finishing off 1.0 while others are already working on the future updates. I guess that is a good sign meaning that 1.0 will be here relatively soon, probably end of jan.
What i wanted to say was these were the last few changes to the protocol before 1.0
Title: Re: Introducing BitShares Object Graph
Post by: luckybit on December 26, 2014, 03:27:47 am
groundbreaking and thought provoking!  +5%

u mistyped primtive btw.

Ethereum stuck to primitives or assembly.. And a double directed graph would cut down dev costs and ease of use on primitives.. however the million dollar question is: Is there a case you can think of where you would not want to use a graph but use primitives to solve a problem?

I guess vitalik assumes others will build on top if there is a market todo so while we give a leg up on beginners to solve problems quicker but if its a subset of problems then there is a case for primitives or assembly still.  That is when will flexibility of primitives be needed in this context where a graph wouldnt work for a layman?

It's also possible that Vitalik simply over looked this. Building something like Ethereum is hard but I think if you're going to build a scripting language you need to make it high level. Right now they have scripting but as a person who can read several programming languages their scripting is awkward and low level.

I think now that they have the resources the Ethereum team should make a scripting language as much like Python or Javascript as possible. You want something which has minimal syntax for people to learn and which is powerful enough to do the job. Python is good as a scripting language because it's powerful but the syntax is very simple.

Serpent is supposed to be like Python and it's getting closer but it's not quite there. I think the competition between Bitshares and Ethereum should be on making it easy to develop for. Whichever DAC is easier to develop for will certainly win over my attention and I would think most people who aren't rock star developers at the same way.

C++ is not the language people will want to mess with when dealing with people's money. Javascript on the other hand is easy and so is Python. If it is easy people will feel confident enough to write code and if projects can be completed in weeks instead of months people will be more likely to make time to do it.

They have serpent and solidity working and full IDEs in development. We will not beat them as a smart contract platform unless we outgrow them first. More likely we will just pull in their VM once both of our systems are more mature.

We are basically all-in on BitAsset adoption and very basic financial services.

If we are all-in on bitassets then shouldn't our priority be to get the protocol stable so we can launch 1.0 and have no further hard forks a for a long time? Only then will we be able to get gateways, our biggest priority.

We already have the killer app, but it's super difficult to get hold of because gateways don't want to integrate with us because our system is still unstable. I think we should have just focused on getting the last UIA changes implemented, and then only focus on UX for the next 6 months for the amazing products we already have. We don't need scripting in the short term, there's not any evidence in the market that it's actually profitable or useful, only hype.

I dont think we should be beginning on working on even more complicated stuff now if it doesn't actually give us any marketing advantage over ethereum. It makes no sense from a business perspective. We need to get our product ready, and then launch it.

I didn't say right now but I'm talking after 1.0. I think 6 months is perhaps a lot longer than you think it is in this hyper competitive environment so I'm worried Bitshares will not be flexible enough to adapt as quickly as Ethereum.

It looks right now like everything will be okay but at the rate things are going anything could happen in 6 months. The plan to go all in on BitAssets in my opinion means everything is going to ride on the marketing team. If the marketing team is successful then Bitshares will become self funding and will be able to hire whatever developers it needs but if not? If marketing fails or if Ethereum wins out on marketing there will be problems.

Right now I'm on the fence. So far Bytemaster and Stan have been wise in their decisions and everything has turned out alright. Things are going to get hyper competitive in 2015 though because either Bitcoin prices will be flat, will go lower, or will go into another epic bubble.

I assume this is one of the final pieces before we have the final 1.0 protocol. Am i right?

Scripting wasn't planned to be implemented in 1.0. This is also just the data structure and wont actually mean that scripting will be functional according to toast. Dont understand why its being put on the testnet but maybe only some of the devs are working on finishing off 1.0 while others are already working on the future updates. I guess that is a good sign meaning that 1.0 will be here relatively soon, probably end of jan.
What i wanted to say was these were the last few changes to the protocol before 1.0

I completely understand the strategy. It's just risky.

I know we need protocol stability so that greater adoption from Gateways can increase the utility of the platform. What I don't know is whether or not the increase in utility will result in an increase in market cap and in transaction volume. It's possible to have the best platform and still people might go to stuff like Ethereum or Counterparty due to politics, or just the charisma of Vitalik and Patrick.

I hope Bitshares is a success though because I have a stake in it.
Title: Re: Introducing BitShares Object Graph
Post by: bubble789 on December 26, 2014, 03:32:54 am


because either Bitcoin prices will be flat, will go lower, or will go into another epic bubble.

Lol how else can price react ? : )))

Title: Re: Introducing BitShares Object Graph
Post by: santaclause102 on December 26, 2014, 09:12:54 am

Some questions:

Would the data be stored on the blockchain? Wouldn't that lead to blockchain bloat? Take the example of a Forum of linked Posts: Would all posts be stored on the blockchain? Or is it that only the identities, trust levels of identities would be stored on chain?

Since domain names and voting seem to be being built based on the bitshares graph database, would it make sense to say that the BitShares DAC consists of three parts: BitAssets, UIA, graph database applications?

The blockchain size does not matter.  Transaction fees will prioritize use.    Yes all data is in blockchain so it can be referenced by future scripts.
Ok, thanks. And do market pegged and user issued assets also make use of / build on this graph database? Or is it only VOTE and DNS that make use of it?
Title: Re: Introducing BitShares Object Graph
Post by: kisa on December 26, 2014, 10:01:14 am


because either Bitcoin prices will be flat, will go lower, or will go into another epic bubble.

Lol how else can price react ? : )))

One more possibility would be an increase albeit short of a bubble... not sure though this would make an environment less competitive than the other three mentioned scenarios :)
Title: Re: Introducing BitShares Object Graph
Post by: sumantso on December 26, 2014, 05:45:46 pm
BM - can I post the blog content itself in BTCtalk?
Title: Re: Introducing BitShares Object Graph
Post by: bytemaster on December 26, 2014, 06:01:51 pm
It is Public domain
Title: Re: Introducing BitShares Object Graph
Post by: sumantso on December 26, 2014, 06:12:05 pm
It is Public domain

Cheers!

Posted here (https://bitcointalk.org/index.php?topic=905616.0).
Title: Re: Introducing BitShares Object Graph
Post by: hpenvy2 on December 28, 2014, 02:35:40 am
It is Public domain

Cheers!

Posted here (https://bitcointalk.org/index.php?topic=905616.0).

We could use some db experts to help in the thread.
Title: Re: Introducing BitShares Object Graph
Post by: toast on December 28, 2014, 03:15:45 am
That guys post isn't saying that there's anything wrong, just that there's nothing special about it. And there really isn't. We're not actually using a proper graph DB.
Title: Re: Introducing BitShares Object Graph
Post by: gamey on December 28, 2014, 03:19:49 am
I've never understood smart contracts.  I hear examples but meh.  I just don't get it like I feel I should.  BitAssets at least makes sense. 

The other thing is that smart contracts will almost be a commodity while store of value is what will have more power in terms of marketing.

And if I want a smart contract.. why run it on expensive chain if there is suitable secondary choices ?