Bitcoin Forum
November 19, 2024, 02:14:27 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 4 »  All
  Print  
Author Topic: 450btc Bounty (Pledge) for Open Source Exchange project.  (Read 10617 times)
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
December 30, 2010, 12:00:30 AM
 #21

Yes, but with Apache and Python, it was the people who were doing the engineering writing further proposals.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Nefario
Hero Member
*****
Offline Offline

Activity: 602
Merit: 513


GLBSE Support support@glbse.com


View Profile WWW
December 30, 2010, 06:24:05 AM
 #22

So, what does an exchange look like?

Anyone do a simple powerpoint(OpenOffice.org present) mockup?

2-5 slides?

PGP key id at pgp.mit.edu 0xA68F4B7C

To get help and support for GLBSE please email support@glbse.com
davout
Legendary
*
Offline Offline

Activity: 1372
Merit: 1008


1davout


View Profile WWW
December 30, 2010, 07:58:25 AM
 #23

Yes, but with Apache and Python, it was the people who were doing the engineering writing further proposals.
+1, also there already was apache 1 that they got lots of experience from.

Instead of pledging small bounties for what is an important project, it might be a good idea if we setup a page on the wiki and begin documenting how such a site should look/function.

I agree on documenting things . Its not actually the site thats important its coming up with some sort of standard for future reference.

I have another bounty for something similar which is a web based currency converter like you see at xe.com  A current list of resources for people to use to build on top of would be helpful.


I urge the exact opposite -- start coding first.  If people start writing, then you wind up with a project where kiba, RHorning and other talkative types have a lot of input into something that few programmers are interested in coding.
+1 on coding first, actually, +1 on "start coding failing tests first"


Anonymous
Guest

December 30, 2010, 11:13:22 AM
 #24

It would be nice to have some input from those who already run exchanges?

Seems to me their experience would be valuable vis a vis problems and issues that need to be addressed.

One of the major issues is what are you exchanging from and to? Is it just e-currencies or national currencies? What are the methods to get money in and out of the exchange?

I can soon offer the bank accounts needed for direct deposits if that helps. I would  like to see something that helps the community rather than just create another closed source exchange.

Id also rather something practical is done rather than a talk fest similar to the bit-dns debacle  Tongue

Is there a problem with documenting the project as it goes along?
genjix
Legendary
*
Offline Offline

Activity: 1232
Merit: 1076


View Profile
December 30, 2010, 01:16:15 PM
 #25

no the problem is that i have no idea wtf something like this even looks like.

if someone makes a mockup then i'll start doing the graphic design for the page and helping out with coding.

If someone wants to make a git project this week and after post their repo here so I can fetch it.

Please make it with modularisation in mind. That is all.

Is it really too hard to make some rough documents? Won't even take a day for someone in the know. But whatever... prototype code is a longer form but basically the same.
Nefario
Hero Member
*****
Offline Offline

Activity: 602
Merit: 513


GLBSE Support support@glbse.com


View Profile WWW
December 30, 2010, 02:50:14 PM
 #26

Actually this is something that I would like to create, I will have more free time over the next few weeks so I should have something at the end of a 3 week period. It won't look nice but it will be functional, my skill is not design(would anyone like to do the style?actually it is better to have some visual mockups first, anyone want to collaborate on this?), and as I have mentioned before I am not a very fast developer.

I will begin coding on Monday(I am always busy on the weekend).

PGP key id at pgp.mit.edu 0xA68F4B7C

To get help and support for GLBSE please email support@glbse.com
grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 30, 2010, 03:45:53 PM
Last edit: December 30, 2010, 04:37:29 PM by grondilu
 #27

What would do such an exchange plateform exactly ?

To me it should give tools to maintain order books.

User should be identified with a key pair.  Whether it is GnuPG, DSA, or even bitcoin ECDSA extracted from wallets.  Depending of the format of the public key, the software should be able to recognize which one it should use.

It should allow to exchange any kind of asset.  Not just currencies.  Yes, I'm thinking about share holdings.  But actually any kind of asset, like with the loom project (https://loom.cc).

It should maintain all possible book orders.  With N differrent assets, there will be N * (N-1)/2 possible kind of books.  But if we want to trade everything only against bitcoins, then we'll have only N books.

The software should do adjudication.  Given a set of orders, extract matching ones and decide which should be executed and which should be postponed.  Execution would only consist in contacting issuers of the matching order, so that they can proceed to the actual trade.  Unless we want to implement an escrow or banking account service too.

A rating system should be available.

So basically what we need is a protocol, rather than a software.


To sum up, the features would be :

* publish an order.  Characteristcs are : 
- identification of the asset (Paypal USD, 20 EUR via mail, company share,...) using an asset code ;
- quantity ;
- price ( bid or ask ) ;
- public key and signature of the issuer of the order ;
- an indication whether or not the order can be executed partially ;
- time validity of the order ;

* adjudication algorithm.  This might very well be the toughest part ;

* rate a user.  Each member signs a rating of the public keys of other members.


Maybe I miss something but that's how I see the whole thing.

kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1020


View Profile
December 30, 2010, 04:12:25 PM
 #28

Noagendamarket really should update the thread to say that there's more than 100 BTC and also lists all the people who pledge too.

Nefario
Hero Member
*****
Offline Offline

Activity: 602
Merit: 513


GLBSE Support support@glbse.com


View Profile WWW
December 30, 2010, 05:05:57 PM
 #29

What would do such an exchange plateform exactly ?

To me it should give tools to maintain order books.

User should be identified with a key pair.  Whether it is GnuPG, DSA, or even bitcoin ECDSA extracted from wallets.  Depending of the format of the public key, the software should be able to recognize which one it should use.

It should allow to exchange any kind of asset.  Not just currencies.  Yes, I'm thinking about share holdings.  But actually any kind of asset, like with the loom project (https://loom.cc).

It should maintain all possible book orders.  With N differrent assets, there will be N * (N-1)/2 possible kind of books.  But if we want to trade everything only against bitcoins, then we'll have only N books.

The software should do adjudication.  Given a set of orders, extract matching ones and decide which should be executed and which should be postponed.  Execution would only consist in contacting issuers of the matching order, so that they can proceed to the actual trade.  Unless we want to implement an escrow or banking account service too.

A rating system should be available.

So basically what we need is a protocol, rather than a software.


To sum up, the features would be :

* publish an order.  Characteristcs are : 
- identification of the asset (Paypal USD, 20 EUR via mail, company share,...) using an asset code ;
- quantity ;
- price ( bid or ask ) ;
- public key and signature of the issuer of the order ;
- an indication whether or not the order can be executed partially ;
- time validity of the order ;

* adjudication algorithm.  This might very well be the toughest part ;

* rate a user.  Each member signs a rating of the public keys of other members.


Maybe I miss something but that's how I see the whole thing.


That would be more difficult than what I was thinking of. But it would also be much much better.

PGP key id at pgp.mit.edu 0xA68F4B7C

To get help and support for GLBSE please email support@glbse.com
kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1020


View Profile
December 30, 2010, 05:48:05 PM
 #30

Are there people who are willing to pledge more bitcoin so guys like me will think it's worth the effort of coding it?

grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 30, 2010, 06:47:48 PM
 #31

Are there people who are willing to pledge more bitcoin so guys like me will think it's worth the effort of coding it?

Come on guys...  Don't you like coding just for the fun of it ?  I'm currently working on something else right now, I will release the source code once it's done, and yet I don't expect to get any bitcoin for it.

It's very easy to pay someone with bitcoin, and yet I don't think this is a reason why we should pay for everything.

Moreover, I actually tend to think that the code is better when it is done for free, because the developper really enjoyed his work, and did not do it just for the money.

kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1020


View Profile
December 30, 2010, 06:56:52 PM
 #32


Moreover, I actually tend to think that the code is better when it is done for free, because the developper really enjoyed his work, and did not do it just for the money.


I don't want to get paid in lame dollars. I want to get paid in bitcoin.

grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 30, 2010, 07:00:42 PM
 #33

I don't want to get paid in lame dollars. I want to get paid in bitcoin.

Try to think about the bitcoins you will earn when the software is done and you use it to do business.

Anonymous
Guest

December 30, 2010, 08:54:46 PM
 #34

Noagendamarket really should update the thread to say that there's more than 100 BTC and also lists all the people who pledge too.


Sorry I am a bit busy over the christmas holidays  Tongue

Doing it now.
Anonymous
Guest

December 30, 2010, 09:12:27 PM
 #35

What would do such an exchange plateform exactly ?

To me it should give tools to maintain order books.

User should be identified with a key pair.  Whether it is GnuPG, DSA, or even bitcoin ECDSA extracted from wallets.  Depending of the format of the public key, the software should be able to recognize which one it should use.

It should allow to exchange any kind of asset.  Not just currencies.  Yes, I'm thinking about share holdings.  But actually any kind of asset, like with the loom project (https://loom.cc).

It should maintain all possible book orders.  With N differrent assets, there will be N * (N-1)/2 possible kind of books.  But if we want to trade everything only against bitcoins, then we'll have only N books.

The software should do adjudication.  Given a set of orders, extract matching ones and decide which should be executed and which should be postponed.  Execution would only consist in contacting issuers of the matching order, so that they can proceed to the actual trade.  Unless we want to implement an escrow or banking account service too.

A rating system should be available.

So basically what we need is a protocol, rather than a software.


To sum up, the features would be :

* publish an order.  Characteristcs are :  
- identification of the asset (Paypal USD, 20 EUR via mail, company share,...) using an asset code ;
- quantity ;
- price ( bid or ask ) ;
- public key and signature of the issuer of the order ;
- an indication whether or not the order can be executed partially ;
- time validity of the order ;

* adjudication algorithm.  This might very well be the toughest part ;

* rate a user.  Each member signs a rating of the public keys of other members.


Maybe I miss something but that's how I see the whole thing.


That sounds about right.
I believe the #bitcoin-otc trading desk and the reputation system could be a useful part of this project. Maybe an implementation that uses it to bootstrap off...if you think about it bitcoin itself uses irc to bootstrap . Its definitely a great starting point.

Speaking of xe.com I like how people can enter an amount of one currency and it converts to another.  A web page that does this does not yet exist so this could be a feature that sets this project apart if it can be done.

grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 30, 2010, 11:15:33 PM
Last edit: December 30, 2010, 11:43:49 PM by grondilu
 #36

I'd like to see a Unix-style program that would parse ASCII column format for orders on stdin, and would output matching, adjudicated orders.


So the usage of the program would be :

$ adjudicate < orders-file

Where "orders-file" would be a column-oriented data file with the following columns :

ID:  some random unique string to identify the order
DATE: date when the order was signed in seconds since EPOCH
ASSET: identification string for the asset/currency
AMOUNT: quantity of the order.
PARTIAL: 0 if the order can be executed partially, 1 otherwise.
PRICE:  limit price for the order.  Positive for a bid, negative for an ask.  Price is in bitcoins, of course Wink
DEADLINE:  limit date for the validity of the order
FINGERPRINT: the fingerprint of the issuer's GnuPG public key
SIGNATURE:  a hyperlink to the signature of this order.


So there is one line for each order.   Therefore the program can be easily inserted in an pipe.

The program searches for matching orders, and determines a selling price, according to some rules that we have yet to decide.

Consider for instance those two matching orders :

A. quantity=1000, bid=110
B. quantity=100, ask=90

So at which price should the trade be done ?  90, 110, 100 ??  Should the relative quantities intervene in chosing the amount between 90 and 110 ?

What about this situation, where one bid matches two asks :

A. quantity=1000, bid=110
B. quantity=900, ask=90
C. quantity=500, ask=100

Which order should be executed fully between B. and C. ?  Would the criterium be only the date at which the orders were posted ?  Would B. be executed preferentially since it has a lower ask ?

Those rules have to be made clear, and integrated in the adjudication algorithm.

Anyway at the end, if some matching orders were found, the program returns pairs of order IDs. One pair per line.  Orders that are not valid (deadlime in past for instance) are printed on a single line.

For instance this output :

foo1  bar1
foo2  foo3
bar2

means that the order foo1 matches the order bar1 and both should be executed.  Same for foo2 and foo3.
However, bar2 is an order that the program has detected as being non valid.

An other porgram could then use this ouput to update the order-file, and then input the modified version again to the adjudicate program, while adding new orders if there are some.  And the process repeats until there is no more orders.



Nefario
Hero Member
*****
Offline Offline

Activity: 602
Merit: 513


GLBSE Support support@glbse.com


View Profile WWW
December 31, 2010, 05:07:51 AM
 #37


It should allow to exchange any kind of asset.  Not just currencies.  Yes, I'm thinking about share holdings.  But actually any kind of asset, like with the loom project (https://loom.cc).




My comment is going off topic a little (and seems to drift also)so please be patient with me.

Shareholdings, bitcoin based companies that officially do not exist in the real world, this is an interesting idea, I wonder how it might work.

Just had a look at loom.cc, interesting idea, but new accounts require invitations. Does it cost anything to start using loom? It doesn't involve the clearing process it seems. Actually this is what is needed to ensure secure, anonymous (regarding real id's people would still use pseudonyms that have an online reputation) trade.

This is something I've been wondering about, the clearing process. Once an order has been made, how is it settled? And how can we ensure that one or both parties are not cheated? And how can we keep parties from having to learn identifying information about each other(learning each others bank accounts for cash transfer etc.).

I am trying to conceptualise how I can perform Chinese RMB exchange for bitcoin (and fascilitate others doing so) without using my bank account as the clearinghouse (I know this is not the right word but I can't think of any other). Another method is to fascilitate trade between users who will learn each others bank account numbers to perform a trade. There is cash in post, which in China is impossible(post is so unreliable for regular letters, if there is cash involved it will certainly to be stolen). And finally there is face to face meeting.

Would providing a bitcoin escrow solve this issue to an extent?

Governments (especially mine) have gone to great effort to make it difficult to perform trade remotely without being identified to the government. And where cash transfers are concerned this has worked. Money laundering legislation in the US has the same effect. If you cannot prove you earned the money to buy something legally then it can be confiscated. Your home, property etc. In China the situation is even worse as there is a lack of clear judicial process(that is unbiased).

My post probably belongs in a different thread.

PGP key id at pgp.mit.edu 0xA68F4B7C

To get help and support for GLBSE please email support@glbse.com
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
December 31, 2010, 06:12:20 AM
 #38


In China the situation is even worse as there is a lack of clear judicial process(that is unbiased).
 

The government settles disputes between itself and others in America. The only thing clear about the process is that they control it.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Nefario
Hero Member
*****
Offline Offline

Activity: 602
Merit: 513


GLBSE Support support@glbse.com


View Profile WWW
December 31, 2010, 05:42:31 PM
 #39

I am assuming that users of this system will have accounts, and they will be able to do up to two things.
1)buy
This is easy,when a user buys something(using BTC) the amount must be deposited to the system, it will then be kept in escrow until the trade is clear. once the buyer recieves their goods/services they can select to clear the trade, releasing the funds to the seller.

If there are any problems they can dispute the trade - I will discuss this a little later.

2)sell
To be able to sell the user must be verified, this involves:
i)making a BTC deposit (for example 500BTC) that will be used as a kind of insurance and to cover dispute costs.
ii)provide a public key that can be used to authenticate future trades from the user
iii) verify the users email address, which must be the same address in the public key(any email address will do, even on in i2p)
iv)if the users public key is signed by another system user who is also a seller (and has also been verified) this will reduce the amount of the deposit they must make by 100BTC to a minimum of 100BTC(signing by multiple, current users is ok)
v)sellers may only sell 10 times the value of their deposit. If they have 100BTC for example they may sell for a value up to 1000BTC, if they wish to sell more they must deposit more. (Is this a bad idea? I'm not sure about this one, I think it provides a kind of insurance)

This allows for a users identity (their online persona, not their real identity) to be verified with cash(BTC) and a web of trust. This is required for selling because most things being sold cannot be held in escrow until the trade is complete while a buyers BTC easily can.

To put an item for sale on the market the seller must create an order(containing details specified by grondilu). This order is turned into json(or yaml)text and signed with gpg, ensuring it's authenticity. It is then pushed to the server.

The server will verify the authenticity of the signature, check to see if the minimum deposit amount is available and if so, place the sell on the active market table.

once a trade is made (this part requires more details, how is a trade made? this is not ebay or simply an online store)the buy and sell orders are made a pair, the pair is hashed, this hash is id of the trade. The trade is moved from the active trades table to the clearing table.

For the trade to be cleared the buyer must select the "good trade" button (or something like this), if after a period of time (specified by whom?) the trade is not cleared or if the "dispute trade" button is selected by either buyer or seller the trade will go into dispute.

Once a trade is made the seller must, after sending the item to the buyer , select the "sent item" button. The buyer or seller may cancel the trade at any time before the "sent item" button is selected. but there is a cost of 10% of the item cost(perhaps this could be lower, I don't know, but I think there should be a cost to canceling trades) to whomever cancels the trade. 50% of this cost will go to the other party and 50% will go to the market.

Dispute
It is in both parties interests to stay out of dispute. To resolve a dispute will make charges against the buyers and sellers deposit.

Both the buyer and seller will write what the problem is in the dispute application. the details , with the users reputation details will be placed on the dispute application.

the system judges (those who work for the system) will process this application for a fee(this fee is taken from both the sellers and buyers deposit, I don't know the amount), and the judge will make a decision and take appropriate action(such as release funds to the seller from escrow, refund the buy the full amount and take the dispute charges from the sellers deposit).

cleared trades will be added to the reputation of both buyers and sellers. once trade pairs are made both buyers and sellers will have the chance to view each others reputation before continuing or canceling the trade.

The system will take a btc commision on each successful trade, maybe 1%.

At first the interface will be web based, and then desktop clients will be made.

I hope this makes sense and I am not rambling. Please let me know what you think. Also please provide advice where I have missed details or made some mistake or a poor decision.

PGP key id at pgp.mit.edu 0xA68F4B7C

To get help and support for GLBSE please email support@glbse.com
grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 31, 2010, 06:20:16 PM
 #40

No account.

Pages: « 1 [2] 3 4 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!