andyc (OP)
Newbie
Offline
Activity: 5
Merit: 0
|
|
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.0You can access Bitcoin Networked Economy Specification v0.01-DRAFT at the following URL: http://bcspec.orgI 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
|
|
|
|
sirius
Bitcoiner
Sr. Member
Offline
Activity: 429
Merit: 1002
|
|
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.
|
|
|
|
Anonymous
Guest
|
|
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. .
|
|
|
|
andyc (OP)
Newbie
Offline
Activity: 5
Merit: 0
|
|
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.
|
|
|
|
Bitcoiner
Member
Offline
Activity: 70
Merit: 11
|
|
July 14, 2010, 04:42:13 PM |
|
Nice job, Andy! Really glad to see community members taking the initiative to drive projects like this.
|
Want to thank me for this post? Donate here! Flip your coins over to: 13Cq8AmdrqewatRxEyU2xNuMvegbaLCvEe
|
|
|
dwdollar
Full Member
Offline
Activity: 202
Merit: 109
GCC - Global cryptocurrency
|
|
July 14, 2010, 09:29:08 PM |
|
I really like where you're going with this. Let's keep this active.
|
|
|
|
mtgox
|
|
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
|
|
|
|
Vasili Sviridov
|
|
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/)
|
1JHYtsmsGq2McwGHmWayVjVtHds8rp1R5
|
|
|
melvster
|
|
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.0You can access Bitcoin Networked Economy Specification v0.01-DRAFT at the following URL: http://bcspec.orgI 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!
|
|
|
|
bc343336
Newbie
Offline
Activity: 1
Merit: 0
|
|
July 25, 2010, 07:22:17 PM Last edit: July 25, 2010, 09:32:37 PM by bc343336 |
|
For the JSON { "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 { "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
|
|
|
|
sirius
Bitcoiner
Sr. Member
Offline
Activity: 429
Merit: 1002
|
|
July 26, 2010, 05:34:15 PM Last edit: July 26, 2010, 06:22:20 PM by sirius-m |
|
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. Some services also accept https connections only.
|
|
|
|
sirius
Bitcoiner
Sr. Member
Offline
Activity: 429
Merit: 1002
|
|
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.
|
|
|
|
melvster
|
|
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. 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/cardTo 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. <rdf:Description rdf:about="#bitcoin1"> <foaf:accountServiceHomepage rdf:resource="http://www.bitcoin.org/"/> <foaf:accountName> 1J4F6Beb2zFSuoyj15mdhw3HA7KkEVa8DS </foaf:accountName> </rdf:Description>
|
|
|
|
lachesis
|
|
July 27, 2010, 03:10:50 AM Last edit: July 27, 2010, 04:20:04 AM by lachesis |
|
I would combine pairs and quotes into one reference. My ideal syntax would be something like { "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: To make things simple, they should probably always be given as UTC timestamps; this is more restrictive than RFC 3339, which allows 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.
|
|
|
|
kiba
Legendary
Offline
Activity: 980
Merit: 1020
|
|
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.
|
|
|
|
Vasili Sviridov
|
|
July 27, 2010, 05:22:02 AM |
|
Why do you do this: ? This is not XML, no need to wrap it in yet another layer...
|
1JHYtsmsGq2McwGHmWayVjVtHds8rp1R5
|
|
|
lachesis
|
|
July 27, 2010, 07:24:08 AM Last edit: July 28, 2010, 01:00:20 AM by lachesis |
|
Why do you do this: ? 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: { "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?
|
|
|
|
sirius
Bitcoiner
Sr. Member
Offline
Activity: 429
Merit: 1002
|
|
July 28, 2010, 04:43:19 PM |
|
I'd also change the address to domain.com/bcspec.
|
|
|
|
Vasili Sviridov
|
|
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.
|
1JHYtsmsGq2McwGHmWayVjVtHds8rp1R5
|
|
|
lachesis
|
|
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.
|
|
|
|
|