Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: andyc on July 14, 2010, 05:00:45 AM



Title: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: andyc on July 14, 2010, 05:00:45 AM
I've published a draft set of specifications according to my original post here: http://bitcointalk.org/index.php?topic=324.0 (http://bitcointalk.org/index.php?topic=324.0)

You can access Bitcoin Networked Economy Specification v0.01-DRAFT at the following URL:

http://bcspec.org (http://bcspec.org)

I would love to hear input and feedback from anyone. The goal here is not to make a perfect spec (that would be impossible), but to get something that works well enough and is as simple as possible.

In my original post, I mentioned XML. I decided to specify everything as JSON and JSON-RPC (for the planned protocol bits), because it's much cleaner, simpler, and easier to implement.

If you have any products or services you'd like to offer, you can start right now by uploading a couple of JSON files to your web host.

I plan to implement a v0.01-DRAFT-compliant spider soon, which will begin to aggregate any products and services people are offering.

-Andy


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: sirius on July 14, 2010, 06:22:44 AM
This sounds really interesting, might be a good way to build a web-of-trust for supporting the economy. I'll implement it on my service.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Anonymous on July 14, 2010, 09:17:33 AM
This is great.I offered a bounty in another thread to get merchant tools coded but it seems like you are off and running with this effort.I hope everyone sends some coins in appreciation.  :).


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: andyc on July 14, 2010, 01:57:27 PM
Thanks for the encouragement, guys!

sirius-- glad to hear you'll implement it. I'll plug your site in as one of the first to be spidered. Support from currency exchanges is crucial.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Bitcoiner on July 14, 2010, 04:42:13 PM
Nice job, Andy!  Really glad to see community members taking the initiative to drive projects like this.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: dwdollar on July 14, 2010, 09:29:08 PM
I really like where you're going with this.  Let's keep this active.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: mtgox on July 19, 2010, 03:20:25 AM
Nice work! Good to get this stuff organized early. I implemented it (hopefully correctly) with my exchange.

I have a question though about currencies that are not traditional. How should we list them? For example I want to add a virtual currency from a game. Should I just make up a reasonable pair symbol that isn't taken?

For this: bitcoin/fxchange.pairs.json


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Vasili Sviridov on July 19, 2010, 08:23:02 AM
A browser extension (greasemonkey maybe) would be cool, to show a bitcoin icon (similar to https lock) to show that a site participates in bitcoin economy.

Also, perhaps more attention should be focused on supporting microformats, so the bitcoin economy is not only site-specific, but even item-specific on a page. (by microformats i mean information embedded in html markup, rather than external json files. More info @ http://microformats.org/)


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: melvster on July 25, 2010, 01:01:58 AM
I've published a draft set of specifications according to my original post here: http://bitcointalk.org/index.php?topic=324.0 (http://bitcointalk.org/index.php?topic=324.0)

You can access Bitcoin Networked Economy Specification v0.01-DRAFT at the following URL:

http://bcspec.org (http://bcspec.org)

I would love to hear input and feedback from anyone. The goal here is not to make a perfect spec (that would be impossible), but to get something that works well enough and is as simple as possible.

In my original post, I mentioned XML. I decided to specify everything as JSON and JSON-RPC (for the planned protocol bits), because it's much cleaner, simpler, and easier to implement.

If you have any products or services you'd like to offer, you can start right now by uploading a couple of JSON files to your web host.

I plan to implement a v0.01-DRAFT-compliant spider soon, which will begin to aggregate any products and services people are offering.

-Andy

This looks very cool.  I've already partially integrated bitcoin into the FOAF distributed social network. 

If we can also make the meta data well namespaced (e.g. with RDF style), this stuff could scale really well, and hopefully be deeply integrated with the Web.  Maybe we can try and get this to standards level too ... one thing at time tho ... a great start!


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: bc343336 on July 25, 2010, 07:22:17 PM
For the JSON

Code:
 { "pair": "BCUSD", "buy": true, "sell": true }, 

Please specify, does "buy" true mean the site buys BC paying USD, or that the site buys USD paying BC?

(Also note the HTML at the site shows invalid JSON -- missing quote after the sell field name and before the colon.  Use jsonlint.com to check your JSON.)

Probably better to break the pair up into both parts, you may not be able to tell how a string can be broken into two currency symbols.  Especially when using non ISO currency symbols.  Maybe

Code:
 { "pair": { "first": "BC", "second": "USD"}, "buy": true, "sell": true }, 

And one more thing, most folks here seem to be using BTC as the currency symbol for Bitcoins

-- bc3


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: sirius on July 26, 2010, 05:34:15 PM
I'm writing a modular Django app that implements this and is relatively easy to integrate with your own systems. It would be cool if someone did a similar php application.

What interest me most are the "Friends" and "Blacklist" specifications, since they can be used for building a web-of-trust, and I don't think we should limit this to the Bitcoin economy only. Should we use a URL or some other unique identifier instead of a domain name, so you could rate services or individuals who don't have a domain of their own? That would integrate better with social networking systems like Diaspora (http://www.joindiaspora.com). Some services also accept https connections only.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: sirius on July 26, 2010, 06:31:45 PM
In a reputation network the reviews could be digitally signed so others could mirror them on their domains. Diaspora's GPG support could be utilized.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: melvster on July 26, 2010, 06:58:03 PM
I'm writing a modular Django app that implements this and is relatively easy to integrate with your own systems. It would be cool if someone did a similar php application.

What interest me most are the "Friends" and "Blacklist" specifications, since they can be used for building a web-of-trust, and I don't think we should limit this to the Bitcoin economy only. Should we use a URL or some other unique identifier instead of a domain name, so you could rate services or individuals who don't have a domain of their own? That would integrate better with social networking systems like Diaspora (http://www.joindiaspora.com). Some services also accept https connections only.

Diaspora isnt even released yet.

Have you thought about using FOAF?

http://www.foaf-project.org/

(ive spoken to the disapora folks and they should hopefully be compatible with foaf too -- gnu social is -- and google are getting on board).  I've already posted to Gnu social and diaspora about bitcoin ...

FOAF havent the big marketing effect of disaspora, it's a grass roots effort that's been going 10 years, and already has a distributed social net of 100 million users, and lots of working code.  No other system of its kind comes close.  This is the system favoured by web standards (W3C).  Quite a few of us are building things with FOAF, so I'd really hope it's compatible with bcspec.  

Here's an example of decentralized browsing of profiles.

http://foaf-visualizer.org/?uri=http://www.w3.org/People/Berners-Lee/card

To endorse someone simply put A  foaf:knows B in your foaf file.  And you've started a white list.  I'm starting to build bitcoins solutins too ... so hopefully we can keep in touch!

Note: I've *already* integrated bitcoin into my foaf ... and a web of trust is being built.  

Code:
<rdf:Description rdf:about="#bitcoin1">
    <foaf:accountServiceHomepage rdf:resource="http://www.bitcoin.org/"/>
    <foaf:accountName>
        1J4F6Beb2zFSuoyj15mdhw3HA7KkEVa8DS
    </foaf:accountName>
</rdf:Description>


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: lachesis on July 27, 2010, 03:10:50 AM
I would combine pairs and quotes into one reference. My ideal syntax would be something like
Code:
{
  "updateTime":1280200412,
  "specVersion": 6,
  "marketOpen": true,
  "pairs": [
    { "pair": {"buy":"BTC", "sell":"USD"}, "lastTradeTime":1280200411, "bid": 0.050, "ask": 0.055, "last": 0.052, "vol": 1000 },
    { "pair": {"buy":"BTC", "sell":"EUR"}, "lastTradeTime":1280200200, "bid": 0.025, "ask": 0.027, "last": 0.026, "vol": 0 }
  ]
}

This format is evolving. I'd be glad to take suggestions on what the field names ought to be. I could see replacing "sell" with "with" or something. That makes sense in English: buy BTC with EUR.

Also, it might be better to replace Unix timestamps with one of the RFC 3339 timestamps:
Code:
1985-04-12T23:20:50.52Z
To make things simple, they should probably always be given as UTC timestamps; this is more restrictive than RFC 3339, which allows
Code:
1996-12-19T16:39:57-08:00
to indicate a timezone of UTC-8 (Pacific Standard Time).

strptime(), a function of at least PHP, Python, and C (and probably everything else), can easily parse this date back into a unixtime, and it's much more readable than "1280200412".

We should also define volume: I've always interpreted it as the sum of the values of the trades that completed within the last hourlast 24 hours. Thanks klba.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: kiba on July 27, 2010, 04:19:15 AM

We should also define volume: I've always interpreted it as the sum of the values of the trades that completed within the last hour.

I thought volume is defined by how many bitcoins were exchanged in the last 24 hours.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Vasili Sviridov on July 27, 2010, 05:22:02 AM
Why do you do this:
Code:
"pairs": [ 
    { "pair":
?

This is not XML, no need to wrap it in yet another layer...


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: lachesis on July 27, 2010, 07:24:08 AM
Why do you do this:
Code:
"pairs": [ 
    { "pair":
?

This is not XML, no need to wrap it in yet another layer...
How else would you encode a list inside a dictionary?

-- EDIT --
I suppose I could remove the { pair: {"buy": "BTC", "sell": "USD"}... } nesting and just make tags in each pair's dictionary:
Code:
{
"version": 7,
...
"pairs": [ { "buy": "BTC", "sell": "USD", "ask": 0.005, "bid": 0.004, "last": 0.0045, ... }, ... ]
}
That might actually be better than how I had it. Anybody have an opinion?


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: sirius on July 28, 2010, 04:43:19 PM
I'd also change the address to domain.com/bcspec.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Vasili Sviridov on July 28, 2010, 09:20:14 PM
I suppose I could remove the { pair: {"buy": "BTC", "sell": "USD"}... } nesting and just make tags in each pair's dictionary:

That's exactly what I meant.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: lachesis on July 28, 2010, 10:02:37 PM
So andyc, any comment on this? As the bcspec.org maintainer, it would be nice to hear your ideas.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: eugene2k on July 28, 2010, 10:04:19 PM
Sorry, not gonna fly. Back in the 90s everyone offered web-hosting, and technically-savvy people could create websites, anyone knows angelfire, tripod, geocities? They were big in the 90s, now you probably have to search really hard to find anyone familiar with those web-services. You know why? In the 2000s blogging sites appeared, which, in essence, killed the personal websites industry. Because it's thousands of times easier to set up and maintain a blog than it is to set up and maintain a website. We now have ebay to sell and buy stuff from other people. The spec is a step backwards: it's made with the idea that a merchant would want to create a website, manage it, process transactions etc. The merchant only wants to sell her product. That's all.

This whole policy thing, as I see it, is meant only for one thing: ease the job of the spider. And there aren't any spiders yet. Registering a standard before creating an implementation of it is just plain wrong.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: lachesis on July 28, 2010, 10:12:22 PM
I too am a bit skeptical of the power of the spec in the merchant market, but I think it would be great for exchanges, which need to get scraped often.

The white/blacklisting stuff could be better handled by FOAF and the like.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Anonymous on July 29, 2010, 05:39:37 AM
Sorry, not gonna fly. Back in the 90s everyone offered web-hosting, and technically-savvy people could create websites, anyone knows angelfire, tripod, geocities? They were big in the 90s, now you probably have to search really hard to find anyone familiar with those web-services. You know why? In the 2000s blogging sites appeared, which, in essence, killed the personal websites industry. Because it's thousands of times easier to set up and maintain a blog than it is to set up and maintain a website. We now have ebay to sell and buy stuff from other people. The spec is a step backwards: it's made with the idea that a merchant would want to create a website, manage it, process transactions etc. The merchant only wants to sell her product. That's all.

This whole policy thing, as I see it, is meant only for one thing: ease the job of the spider. And there aren't any spiders yet. Registering a standard before creating an implementation of it is just plain wrong.

That is why I used google blogger with a custom domain name.The thought of managing a website hurts my brain. ???


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: Vasili Sviridov on July 29, 2010, 06:31:48 AM
Hey, I had a Tripod and Geocities pages :D

Ahh... memories  :)

However with proper plugins for major blogging platforms this spec can be a viable tool.
Kinda more work for the spec author though.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: eugene2k on July 29, 2010, 07:52:37 AM
I too am a bit skeptical of the power of the spec in the merchant market, but I think it would be great for exchanges, which need to get scraped often.
Not until there are many exchanges dealing with the same currencies. And I'm doubtfull that many more will be popping up.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: sirius on July 29, 2010, 08:02:02 AM
Sorry, not gonna fly. Back in the 90s everyone offered web-hosting, and technically-savvy people could create websites, anyone knows angelfire, tripod, geocities? They were big in the 90s, now you probably have to search really hard to find anyone familiar with those web-services. You know why? In the 2000s blogging sites appeared, which, in essence, killed the personal websites industry. Because it's thousands of times easier to set up and maintain a blog than it is to set up and maintain a website. We now have ebay to sell and buy stuff from other people. The spec is a step backwards: it's made with the idea that a merchant would want to create a website, manage it, process transactions etc. The merchant only wants to sell her product. That's all.

This can still be used by the vast number of merchants or companies who do have a website. Those who don't can use a plugin on their blog, webstore or social networking site.

Quote
This whole policy thing, as I see it, is meant only for one thing: ease the job of the spider. And there aren't any spiders yet. Registering a standard before creating an implementation of it is just plain wrong.

It's not wrong. We're developing here.


Title: Re: Introducing: Bitcoin Networked Economy Specification v0.01-DRAFT
Post by: dwdollar on August 06, 2010, 04:24:45 AM
I'm wondering about the "pair" names.  Is "BCUSD" short for "BC/USD" or BC per USD?  I believe the examples used are reflecting a USD/BC or EUR/BC exchange rate (which is the convention for most exchangers).  In this case, it would be more appropriate to use USDBC or EURBC.