Bitcoin Forum

Economy => Marketplace => Topic started by: morpheus on July 05, 2011, 12:13:22 AM



Title: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 12:13:22 AM
TL;DR: https://github.com/macourtney/Dark-Exchange

You read that right! Dark Exchange is a 100% decentralized p2p exchange. No more worrying about exchange websites going down or locking your account. You now have complete control of your bitcoin exchanges and accounts.

Because Dark Exchange is decentralized, it can't work like Mt Gox or Trade Hill. Instead, it works more like bitcoin-otc and Bitcoin Market. You post offers and others accept them, or you can search all of the offers on the network and select the one you want. Dark Exchange will walk you through the process of completing a trade.

Advantages:

1. Dark Exchange can never be shutdown by anyone (including me) for any reason. As long as there are at least two nodes on the network, the exchange is up and running. (Actually this is more of a goal than a feature at this point. Though I tried to program it this way, I'm not sure if it will really stand up to real world use yet. But, that's why it's called Beta.)

2. No bitcoins or other money is held on a central server. You have complete control over your money the entire time.

3. Virtually all currencies and payment methods are supported. Any currencies or payment methods not already included can be added quickly.

4. No commissions. Free to use.

5. Open source. All source code for Dark Exchange can be found at: https://github.com/macourtney/Dark-Exchange

6. Runs on the I2P network. All connections are end to end encrypted, and privacy is under your control.


Dark Exchange is in Beta right now. Though I've run as many tests as I can think of on it, I'm sure it won't work exactly as advertised right now. I'm looking for intrepid people interested in helping me test Dark Exchange by using it.

All information on how to to download, install and use Dark Exchange can be found on the Dark Exchange wiki: https://github.com/macourtney/Dark-Exchange/wiki

If you have any troubles installing or using the exchange, let me know so I can start entering in issues to make Dark Exchange better.


And since it's the 4th.. Let's all declare independence from centralization with Dark Exchange! :)


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 05, 2011, 02:10:31 AM
I installed I2P OK.
Then I downloaded and installed Dark Exchange.  After I created an account OK, I attempted to trade US dollars for bitcoins and this error occurred...


Code:
ERROR [darkexchange.model.interceptors.signature-interceptor]: an error occured while signing or verifying a signature on the client side.
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: SHA1WithRSAEncryption, provider: BC, class: org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption)
at java.security.Provider$Service.newInstance(Provider.java:1245)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:220)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeStaticMethod(Reflector.java:202)
at darkexchange.model.security$sign.invoke(security.clj:139)
at darkexchange.model.user$sign.invoke(user.clj:141)
at darkexchange.model.interceptors.signature_interceptor$sign.invoke(signature_interceptor.clj:17)
at darkexchange.model.interceptors.signature_interceptor$client_interceptor.invoke(signature_interceptor.clj:47)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707$fn__4708.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor.invoke(identity_interceptor.clj:17)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.interceptor_util$run_interceptors.invoke(interceptor_util.clj:9)
at darkexchange.model.interceptors.client_interceptors$run_interceptors.invoke(client_interceptors.clj:10)
at darkexchange.model.client$send_message.invoke(client.clj:26)
at darkexchange.model.peer$get_peers_from.invoke(peer.clj:98)
at darkexchange.model.peer$all_network_destinations.invoke(peer.clj:152)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:159)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:164)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:155)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.SecurityException: class "org.bouncycastle.crypto.Digest"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
... 26 more
ERROR [darkexchange.model.interceptors.signature-interceptor]: an error occured while signing or verifying a signature on the client side.
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: SHA1WithRSAEncryption, provider: BC, class: org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption)
at java.security.Provider$Service.newInstance(Provider.java:1245)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:220)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeStaticMethod(Reflector.java:202)
at darkexchange.model.security$sign.invoke(security.clj:139)
at darkexchange.model.user$sign.invoke(user.clj:141)
at darkexchange.model.interceptors.signature_interceptor$sign.invoke(signature_interceptor.clj:17)
at darkexchange.model.interceptors.signature_interceptor$client_interceptor.invoke(signature_interceptor.clj:47)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707$fn__4708.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor.invoke(identity_interceptor.clj:17)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.interceptor_util$run_interceptors.invoke(interceptor_util.clj:9)
at darkexchange.model.interceptors.client_interceptors$run_interceptors.invoke(client_interceptors.clj:10)
at darkexchange.model.client$send_message.invoke(client.clj:26)
at darkexchange.model.calls.notify$call.invoke(notify.clj:10)
at darkexchange.model.peer$notify_destination.invoke(peer.clj:92)
at darkexchange.model.peer$notify_all_peers.invoke(peer.clj:134)
at darkexchange.model.peer$add_destinations.invoke(peer.clj:147)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:161)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:164)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:155)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.SecurityException: class "org.bouncycastle.crypto.Digest"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
... 28 more



Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: blap on July 05, 2011, 02:25:29 AM
Quote
## Usage
Dark Exchange is currently under development and cannot be run yet.
=(


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 02:42:19 AM
Strange, it looks like an issue with bouncy castle. I'll have to take a look at it tomorrow.

I've created an issue for it: https://github.com/macourtney/Dark-Exchange/issues/1

I installed I2P OK.
Then I downloaded and installed Dark Exchange.  After I created an account OK, I attempted to trade US dollars for bitcoins and this error occurred...


Code:
ERROR [darkexchange.model.interceptors.signature-interceptor]: an error occured while signing or verifying a signature on the client side.
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: SHA1WithRSAEncryption, provider: BC, class: org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption)
at java.security.Provider$Service.newInstance(Provider.java:1245)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:220)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeStaticMethod(Reflector.java:202)
at darkexchange.model.security$sign.invoke(security.clj:139)
at darkexchange.model.user$sign.invoke(user.clj:141)
at darkexchange.model.interceptors.signature_interceptor$sign.invoke(signature_interceptor.clj:17)
at darkexchange.model.interceptors.signature_interceptor$client_interceptor.invoke(signature_interceptor.clj:47)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707$fn__4708.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor.invoke(identity_interceptor.clj:17)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.interceptor_util$run_interceptors.invoke(interceptor_util.clj:9)
at darkexchange.model.interceptors.client_interceptors$run_interceptors.invoke(client_interceptors.clj:10)
at darkexchange.model.client$send_message.invoke(client.clj:26)
at darkexchange.model.peer$get_peers_from.invoke(peer.clj:98)
at darkexchange.model.peer$all_network_destinations.invoke(peer.clj:152)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:159)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:164)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:155)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.SecurityException: class "org.bouncycastle.crypto.Digest"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
... 26 more
ERROR [darkexchange.model.interceptors.signature-interceptor]: an error occured while signing or verifying a signature on the client side.
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: SHA1WithRSAEncryption, provider: BC, class: org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption)
at java.security.Provider$Service.newInstance(Provider.java:1245)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:220)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
at java.security.Signature.getInstance(Signature.java:324)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeStaticMethod(Reflector.java:202)
at darkexchange.model.security$sign.invoke(security.clj:139)
at darkexchange.model.user$sign.invoke(user.clj:141)
at darkexchange.model.interceptors.signature_interceptor$sign.invoke(signature_interceptor.clj:17)
at darkexchange.model.interceptors.signature_interceptor$client_interceptor.invoke(signature_interceptor.clj:47)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707$fn__4708.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor.invoke(identity_interceptor.clj:17)
at darkexchange.model.interceptors.interceptor_util$compose_interceptors$fn__4707.invoke(interceptor_util.clj:4)
at darkexchange.model.interceptors.interceptor_util$run_interceptors.invoke(interceptor_util.clj:9)
at darkexchange.model.interceptors.client_interceptors$run_interceptors.invoke(client_interceptors.clj:10)
at darkexchange.model.client$send_message.invoke(client.clj:26)
at darkexchange.model.calls.notify$call.invoke(notify.clj:10)
at darkexchange.model.peer$notify_destination.invoke(peer.clj:92)
at darkexchange.model.peer$notify_all_peers.invoke(peer.clj:134)
at darkexchange.model.peer$add_destinations.invoke(peer.clj:147)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:161)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:164)
at darkexchange.model.peer$download_peers_background.invoke(peer.clj:155)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.SecurityException: class "org.bouncycastle.crypto.Digest"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
... 28 more



Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: elmom on July 05, 2011, 06:10:32 AM
"lein run" complained about not finding drift*-SNAPSHOT, changed that and it runs. Takes A LOT of memory though :(, which is not really unexpected for Java in general...

Why not use (native!), it would make things look less ugly :)

I also got the same error here.

What do you think of seesaw BTW? I guess it's the best that clojure has available currently.

Edit: Got two peers, so me and dev only? The search list should (for testing at least) really display all the offers , or at least all offers that use a preffered currency. I put a "bitcoin for euro by mail" offer, does someone see it?

EDIT2: On the first run, the identity tab was empty. Restarted it w/ and w/o :development: It was faster, takes a bit less memory, I now have an identity displayed. How are the normal and :development versions different other than that they maintain separate identities?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 12:54:48 PM
Quote
## Usage
Dark Exchange is currently under development and cannot be run yet.
=(

Fixed this to point to the wiki. :)

https://github.com/macourtney/Dark-Exchange


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Vladimir on July 05, 2011, 12:59:09 PM
how counter-party risk is mitigated on such a exchange i.e. what are the chances that after I transfer my bitcoins to some anonymous guy I get any fiat in return?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 01:13:04 PM
"lein run" complained about not finding drift*-SNAPSHOT, changed that and it runs. Takes A LOT of memory though :(, which is not really unexpected for Java in general...

Why not use (native!), it would make things look less ugly :)

I also got the same error here.

What do you think of seesaw BTW? I guess it's the best that clojure has available currently.

Edit: Got two peers, so me and dev only? The search list should (for testing at least) really display all the offers , or at least all offers that use a preffered currency. I put a "bitcoin for euro by mail" offer, does someone see it?

EDIT2: On the first run, the identity tab was empty. Restarted it w/ and w/o :development: It was faster, takes a bit less memory, I now have an identity displayed. How are the normal and :development versions different other than that they maintain separate identities?

It looks like I forgot to update a reference to the snapshot version of drift in the development environment. This should only affect those running with lein from a git check out of Dark Exchange. I just pushed a fix.

You should have seen 2 other peers, both of which are me. One is a server I just have running constantly so there is someone to connect to, and the other is my real account with a couple offers. If do a search with I Have set to USD cash by mail, and I Want set to bitcoin, bitcoin transfer, you should see one of my offers. The other you should see with a I Have of bitcoin, bitcoin transfer, and I Want of USD, Dwolla.

I don't really want the search to ever show all offers, but it may be nice to look at all the offers from a specific identity.

There are two differences when running in development vrs production (w/o :development). First and most obvious is the database. If you look at config/db_config.clj you'll see that :production uses the "dark_exchange_production" database, and :development uses the "dark_exchange_development" database. The files for these two databases can be found in the data/db directory of your Dark Exchange install.

To initialize the network, Dark Exchange uses a list of known peers listed in the resources/peers.txt file. When you run in development mode, the resources/development-peers.txt file is used instead. This keeps the production and development networks separate.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: haydent on July 05, 2011, 01:20:52 PM
how counter-party risk is mitigated on such a exchange i.e. what are the chances that after I transfer my bitcoins to some anonymous guy I get any fiat in return?


ditto


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 01:22:37 PM
how counter-party risk is mitigated on such a exchange i.e. what are the chances that after I transfer my bitcoins to some anonymous guy I get any fiat in return?


Currently there is none. However, Dark Exchange has a concept of identities which link a user name to a public key/private key. All messages between clients are signed (which seems to be what's breaking with bouncy castle at the moment) and you can view the public key before accepting an offer from someone. This gives an incentive for people to guard their identity and build up a reputation.

If you're exchanging with someone you don't know and have never exchanged with before, you probably don't want to exchange large amounts. Once you become more confident in that person, you can start exchanging larger and larger amounts.

In the future, I hope to implement a web of trust like feature on Dark Exchange to help people determine who they can trust.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: blap on July 05, 2011, 01:44:44 PM
how counter-party risk is mitigated on such a exchange i.e. what are the chances that after I transfer my bitcoins to some anonymous guy I get any fiat in return?


Currently there is none. However, Dark Exchange has a concept of identities which link a user name to a public key/private key. All messages between clients are signed (which seems to be what's breaking with bouncy castle at the moment) and you can view the public key before accepting an offer from someone. This gives an incentive for people to guard their identity and build up a reputation.

If you're exchanging with someone you don't know and have never exchanged with before, you probably don't want to exchange large amounts. Once you become more confident in that person, you can start exchanging larger and larger amounts.

In the future, I hope to implement a web of trust like feature on Dark Exchange to help people determine who they can trust.

just an idea:
Score users would be nice. More trades and more volume with diferent users, more score, registration date to make more scores too (or not?). If a "bad guy" appears, just put negative scores. It not will be the best way, but make some reputation.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 05, 2011, 02:19:47 PM
As I described in the PM sent to you, I explicitly set the classpath jar sequence, and removed the possibly redundant org.bouncycastle package from the i2p jar.  The application launches OK and finds the DarkExchange peer listed on the Identity tab.  The search does not present an exception but I do not see any search results when I enter ..

I Have Bitcoin To Send BY Bitcoin Transfer
I Want United States of America, Dollars Sent by Dwolla

There is no change in the log file as a result of the search attempt.

-------------
By the way, I have been running I2P ever since I downloaded it for Dark Exchange.  It has a wonderful web page dashboard automatically updated every 60 seconds. It says that I've connected with 831 known peers.  A few years ago, I wrote my own peer-to-peer cryptographic messaging system and name service to support a distributed knowledge base application, and I wish that I had then known about I2P!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 02:28:46 PM
As I described in the PM sent to you, I explicitly set the classpath jar sequence, and removed the possibly redundant org.bouncycastle package from the i2p jar.  The application launches OK and finds the DarkExchange peer listed on the Identity tab.  The search does not present an exception but I do not see any search results when I enter ..

I Have Bitcoin To Send BY Bitcoin Transfer
I Want United States of America, Dollars Sent by Dwolla

There is no change in the log file as a result of the search attempt.

I think there are still some issues with Dark Exchange connecting to the network. Check the identity tab. If you're fully connected to the network, you should see 3 identities (including your own).

I'll look at the I2P bouncy castle issue. I didn't realize I2P included the bouncy castle jar. It's funny how I'm not getting that issue on any of the computers I'm using.

Clearly there is much to work on still. :(


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 05, 2011, 02:32:48 PM
These are the identities that I see..

I understand that the DarkExchange identity comes from the peers.txt file.  Should there be anything in the log to confirm connection via the I2P router.  Or is there someplace in the I2P router console to confirm the Dark Exchange client?  I'll poke around.

1   SlipperySlope   MIGfMA0GC ...
2   DarkExchange   MIGfMA0GC ...


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 05, 2011, 05:01:02 PM
These are the identities that I see..

I understand that the DarkExchange identity comes from the peers.txt file.  Should there be anything in the log to confirm connection via the I2P router.  Or is there someplace in the I2P router console to confirm the Dark Exchange client?  I'll poke around.

...

Dark Exchange uses the peers.txt file to find the first peer/peers. From there, it tries to download the list of all peers in the network. Unfortunately, there is something wrong with that part of the initialization, and Dark Exchange seems to be giving up before downloading any peers.

I can't work on it right now, but I will later. It looks like I'll be up late tonight fixing bugs.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: tanerlorn on July 05, 2011, 09:09:26 PM
Do you have an address where donations can be sent?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 05, 2011, 10:41:00 PM
WOO! I've been watching this project on git for about a month now, I'm so excited to try this!  ;D


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 05, 2011, 11:27:33 PM
I have only one peer connected other than myself. I assume its because its so young, but just out of curiosity how many is everyone else getting?

I'm also getting an error when trying to make a new offer of 0.50BTC for $6.65USD sent by Dwolla.

Quote
ERROR [darkexchange.uncaught-exception-handler]: Uncaught Exception:
java.lang.NumberFormatException: For input string: "0.50"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
   at java.lang.Integer.parseInt(Integer.java:458)
   at java.lang.Integer.parseInt(Integer.java:499)
   at darkexchange.controller.offer.has_panel$i_have_amount.invoke(has_panel.clj:16)
   at darkexchange.controller.offer.has_panel$has_offer.invoke(has_panel.clj:25)
   at darkexchange.controller.offer.new_offer$has_offer.invoke(new_offer.clj:23)
   at darkexchange.controller.offer.new_offer$scrape_offer.invoke(new_offer.clj:29)
   at darkexchange.controller.offer.new_offer$attach_create_offer_action$fn__5827.invoke(new_offer.clj:33)
   at darkexchange.controller.actions.utils$frame_listener.invoke(utils.clj:12)
   at darkexchange.controller.actions.utils$attach_frame_listener$fn__2909.invoke(utils.clj:15)
   at seesaw.event$fire.invoke(event.clj:143)
   at seesaw.event$eval761$fn$reify__763.actionPerformed(event.clj:170)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
   at java.awt.Component.processMouseEvent(Component.java:6288)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
   at java.awt.Component.processEvent(Component.java:6053)
   at java.awt.Container.processEvent(Container.java:2041)
   at java.awt.Component.dispatchEventImpl(Component.java:4651)
   at java.awt.Container.dispatchEventImpl(Container.java:2099)
   at java.awt.Component.dispatchEvent(Component.java:4481)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
   at java.awt.Container.dispatchEventImpl(Container.java:2085)
   at java.awt.Window.dispatchEventImpl(Window.java:2478)
   at java.awt.Component.dispatchEvent(Component.java:4481)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
   at java.awt.EventQueue.access$000(EventQueue.java:84)
   at java.awt.EventQueue$1.run(EventQueue.java:602)
   at java.awt.EventQueue$1.run(EventQueue.java:600)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
   at java.awt.EventQueue$2.run(EventQueue.java:616)
   at java.awt.EventQueue$2.run(EventQueue.java:614)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

JRE  build 1.6.0_23-b03 64bit
Arch Linux: kernel version 2.6.39-ARCH x86_64
I2p version 0.8.7


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Vasco on July 06, 2011, 05:27:54 AM
What a great concept, I eagerly await the results!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 06, 2011, 07:32:57 PM
I have only one peer connected other than myself. I assume its because its so young, but just out of curiosity how many is everyone else getting?

I'm also getting an error when trying to make a new offer of 0.50BTC for $6.65USD sent by Dwolla.

Quote
ERROR [darkexchange.uncaught-exception-handler]: Uncaught Exception:
java.lang.NumberFormatException: For input string: "0.50"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
   ..

JRE  build 1.6.0_23-b03 64bit
Arch Linux: kernel version 2.6.39-ARCH x86_64
I2p version 0.8.7

You caught an error with Dark Exchange only accepting whole numbers right now. I just committed a fix for it (unfortunately, the database didn't cooperate, and I had to make the most convoluted migration ever).

The original release had so many issues with connections, I'm not sure anyone else is running it right now. I only see 5 total users on the server I set up to connect everyone. Of the 5, 3 are me.

I've been working on another release since last night. I think I have everything working, and should be able to release BETA2 tonight.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 06, 2011, 10:32:21 PM
I just launched i2p and Dark Exchange that I downloaded yesterday, but I see only two peers.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SmokeAndMirrors on July 07, 2011, 01:46:51 AM
I haven't found any peers since I downloaded the exchange.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:11:02 AM
I've just uploaded a new Beta: https://github.com/macourtney/Dark-Exchange/downloads

This should fix some of the peering issues. However, I2P seems to be very flaky and it may take a few tries to download all of the peers.

After you download and untar the new beta, you'll have to copy the data directory from your old install into the new one. Unless you don't care to keep your old data.

I'm sorry for all of the trouble. Unfortunately, it may take a while to work out all of the bugs with the system. Thank you for being patient and helping me find and resolve bugs.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 07, 2011, 03:22:51 AM
Hi,
I just downloaded and launched beta 2.  I needed to launch it twice before it found 7 peers.

However, before I tried searching, I received the following exceptions ...
Code:
ERROR [darkexchange.uncaught-exception-handler]: Uncaught Exception:
java.lang.RuntimeException: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 4"" [90028-157]"; "lob: null table: -1 id: 4" [90031-157]
at clojure.lang.AFn.run(AFn.java:28)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 4"" [90028-157]"; "lob: null table: -1 id: 4" [90031-157]
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.RT.seq(RT.java:450)
at clojure.core$seq.invoke(core.clj:122)
at clojure.core$dorun.invoke(core.clj:2450)
at clojure.core$doall.invoke(core.clj:2465)
at clj_record.core$find_by_sql$func__4289__auto____4305$fn__4306.invoke(core.clj:73)
at clojure.contrib.sql.internal$with_query_results_STAR_.invoke(internal.clj:194)
at clj_record.core$find_by_sql$func__4289__auto____4305.invoke(core.clj:72)
at clj_record.core$find_by_sql$fn__4309.invoke(core.clj:71)
at clojure.contrib.sql.internal$with_connection_STAR_.invoke(internal.clj:105)
at clj_record.core$find_by_sql.invoke(core.clj:71)
at clj_record.core$find_records.invoke(core.clj:85)
at clj_record.core$find_record.invoke(core.clj:91)
at darkexchange.model.peer$find_record.invoke(peer.clj:41)
at darkexchange.model.peer$find_peer.invoke(peer.clj:67)
at darkexchange.model.identity$update_identity_peer.invoke(identity.clj:53)
at darkexchange.model.identity$update_identity.invoke(identity.clj:59)
at darkexchange.model.identity$add_or_update_identity.invoke(identity.clj:64)
at darkexchange.model.interceptors.identity_interceptor$identity_updater.invoke(identity_interceptor.clj:9)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor$fn__6773.invoke(identity_interceptor.clj:18)
at clojure.lang.AFn.run(AFn.java:24)
... 1 more
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 4"" [90028-157]"; "lob: null table: -1 id: 4" [90031-157]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:156)
at org.h2.message.DbException.convertIOException(DbException.java:313)
at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:283)
at org.h2.value.ValueLobDb.getReader(ValueLobDb.java:267)
at org.h2.jdbc.JdbcClob.getCharacterStream(JdbcClob.java:112)
at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:265)
at darkexchange.model.base$clob_string.invoke(base.clj:9)
at darkexchange.model.base$load_clob.invoke(base.clj:13)
at darkexchange.model.base$clean_clob_key.invoke(base.clj:22)
at darkexchange.model.peer$peer_clean_up.invoke(peer.clj:39)
at clj_record.callbacks$run_callbacks$fn__4255.invoke(callbacks.clj:17)
at clojure.core$r.invoke(core.clj:799)
at clj_record.callbacks$run_callbacks.doInvoke(callbacks.clj:17)
at clojure.lang.RestFn.invoke(RestFn.java:442)
at clj_record.callbacks$after_load$fn__4262.invoke(callbacks.clj:32)
at clojure.core$map$fn__3699.invoke(core.clj:2096)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
... 22 more
Caused by: java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob: 4" [90028-157]
at org.h2.message.DbException.convertToIOException(DbException.java:346)
at org.h2.store.LobStorage.getInputStream(LobStorage.java:449)
at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:281)
... 40 more
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob: 4" [90028-157]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.store.LobStorage.getInputStream(LobStorage.java:444)
... 41 more
ERROR [darkexchange.uncaught-exception-handler]: Uncaught Exception:
java.lang.RuntimeException: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 5"" [90028-157]"; "lob: null table: -1 id: 5" [90031-157]
at clojure.lang.AFn.run(AFn.java:28)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 5"" [90028-157]"; "lob: null table: -1 id: 5" [90031-157]
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.RT.seq(RT.java:450)
at clojure.core$seq.invoke(core.clj:122)
at clojure.core$dorun.invoke(core.clj:2450)
at clojure.core$doall.invoke(core.clj:2465)
at clj_record.core$find_by_sql$func__4289__auto____4305$fn__4306.invoke(core.clj:73)
at clojure.contrib.sql.internal$with_query_results_STAR_.invoke(internal.clj:194)
at clj_record.core$find_by_sql$func__4289__auto____4305.invoke(core.clj:72)
at clj_record.core$find_by_sql$fn__4309.invoke(core.clj:71)
at clojure.contrib.sql.internal$with_connection_STAR_.invoke(internal.clj:105)
at clj_record.core$find_by_sql.invoke(core.clj:71)
at clj_record.core$find_records.invoke(core.clj:85)
at clj_record.core$find_record.invoke(core.clj:91)
at darkexchange.model.peer$find_record.invoke(peer.clj:41)
at darkexchange.model.peer$find_peer.invoke(peer.clj:67)
at darkexchange.model.identity$add_identity.invoke(identity.clj:45)
at darkexchange.model.identity$add_or_update_identity.invoke(identity.clj:65)
at darkexchange.model.interceptors.identity_interceptor$identity_updater.invoke(identity_interceptor.clj:9)
at darkexchange.model.interceptors.identity_interceptor$client_interceptor$fn__6773.invoke(identity_interceptor.clj:18)
at clojure.lang.AFn.run(AFn.java:24)
... 1 more
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob: 5"" [90028-157]"; "lob: null table: -1 id: 5" [90031-157]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:156)
at org.h2.message.DbException.convertIOException(DbException.java:313)
at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:283)
at org.h2.value.ValueLobDb.getReader(ValueLobDb.java:267)
at org.h2.jdbc.JdbcClob.getCharacterStream(JdbcClob.java:112)
at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:265)
at darkexchange.model.base$clob_string.invoke(base.clj:9)
at darkexchange.model.base$load_clob.invoke(base.clj:13)
at darkexchange.model.base$clean_clob_key.invoke(base.clj:22)
at darkexchange.model.peer$peer_clean_up.invoke(peer.clj:39)
at clj_record.callbacks$run_callbacks$fn__4255.invoke(callbacks.clj:17)
at clojure.core$r.invoke(core.clj:799)
at clj_record.callbacks$run_callbacks.doInvoke(callbacks.clj:17)
at clojure.lang.RestFn.invoke(RestFn.java:442)
at clj_record.callbacks$after_load$fn__4262.invoke(callbacks.clj:32)
at clojure.core$map$fn__3699.invoke(core.clj:2096)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
... 21 more
Caused by: java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob: 5" [90028-157]
at org.h2.message.DbException.convertToIOException(DbException.java:346)
at org.h2.store.LobStorage.getInputStream(LobStorage.java:449)
at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:281)
... 39 more
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob: 5" [90028-157]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.store.LobStorage.getInputStream(LobStorage.java:444)
... 40 more


By the way, how is the Dark Exchange client visible in the i2p dashboard - under local destinations?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:25:05 AM
Hi,
I just downloaded and launched beta 2.  I needed to launch it twice before it found 7 peers.

However, before I tried searching, I received the following exceptions ...
...

Darn, I'll have to take a look at it tomorrow.

I testing searching several times. I wonder what's going on.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: tanerlorn on July 07, 2011, 03:29:37 AM
Morph,

What is your address? I'd like to donate to you for your time (and I think others may as well)


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SlipperySlope on July 07, 2011, 03:38:30 AM
I launched Dark Exchange beta 2 again and immediately searched.  The above reported exception did not occur again.

I Have Bitcoin To Send By Bitcoin Transfer
I Want United States of America, Dollars Sent By Dwolla

and it found two offers OK.

I selected the first one and clicked the View button and reasonable details were displayed.  I canceled the transaction because I am not actually prepared for a real transaction.

So far so good!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:50:04 AM
Morph,

What is your address? I'd like to donate to you for your time (and I think others may as well)

I posted a donation bitcoin address in both the README file: https://github.com/macourtney/Dark-Exchange/blob/master/README

And on the wiki: https://github.com/macourtney/Dark-Exchange/wiki

Thanks.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:15:23 PM
...

just an idea:
Score users would be nice. More trades and more volume with diferent users, more score, registration date to make more scores too (or not?). If a "bad guy" appears, just put negative scores. It not will be the best way, but make some reputation.


I've already thought of a scoring based system, but I haven't had time to implement it yet. My idea is to include a scoring system where you would rate each person/identity on a percent trust/distrust scale. Everyone would start out at zero. As you complete trades with someone, you can increase your trust in them by raising the scale to a positive percentage. If the trade goes bad, you can decrease the scale into the negative territory.

Then, all of the trust ratings from the people you already trust would be combined with how much they trust someone else to determine your expected trust in an unknown party. I have an idea how to do that, but I don't want to go into detail here.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:22:42 PM
...
By the way, how is the Dark Exchange client visible in the i2p dashboard - under local destinations?


I don't see Dark Exchange in the i2p dashboard, but it could be picking up the destination and listing it under local destinations.

Also, I've created an issue for your exception, but I don't have a plan to fix it unless it shows up more often. However, I want an issue to make sure it's tracked.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 07, 2011, 03:27:15 PM
I launched Dark Exchange beta 2 again and immediately searched.  The above reported exception did not occur again.

I Have Bitcoin To Send By Bitcoin Transfer
I Want United States of America, Dollars Sent By Dwolla

and it found two offers OK.

I selected the first one and clicked the View button and reasonable details were displayed.  I canceled the transaction because I am not actually prepared for a real transaction.

So far so good!

I seem to be the only one with offers right now. :(

I will stand by my offers. I'm eagerly awaiting to make the first real trade on the exchange.

I'm glad to hear someone else got Dark Exchange working besides me. I'm going to start creating issues to track bugs and change requests. After playing with it a little, what obvious things do you think Dark Exchange needs?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on July 08, 2011, 12:06:48 AM
I launched Dark Exchange beta 2 again and immediately searched.  The above reported exception did not occur again.

I Have Bitcoin To Send By Bitcoin Transfer
I Want United States of America, Dollars Sent By Dwolla

and it found two offers OK.

I selected the first one and clicked the View button and reasonable details were displayed.  I canceled the transaction because I am not actually prepared for a real transaction.

So far so good!

I seem to be the only one with offers right now. :(

I will stand by my offers. I'm eagerly awaiting to make the first real trade on the exchange.

I'm glad to hear someone else got Dark Exchange working besides me. I'm going to start creating issues to track bugs and change requests. After playing with it a little, what obvious things do you think Dark Exchange needs?
You have offers right now? I've been running this for a few hours, and no offers have shown up except for mine.

EDIT: Maybe post this in project development as well?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: SmokeAndMirrors on July 08, 2011, 01:06:20 AM
Seeing as how I'm still having problems being automatically connected to peers, my destination address is:

Quote
MQX7kulCMKy9hu-aE-zvCL9o3qPKnFMQGJR4rmLBr~LUIhSVjWyZNkz8KyJsSbQ60Q7~q4HFBa3sVxoBASOg-qLpZWv17AsfYpd6GWbYePmsXBLPvBBfZwG3xbGvnYgXsSMsx9~FZTX8KL8hfzkKAUS1a3ekGSeZTPGrpLkNn1occ0TvkzWuPCOkxYVgvgD0eNijXPaco7BPRDZjwmoAcDBwFlQ4AJZ3wWVPXawExYWcp0WuXVmc7h7FSnZNWp4EhKZq8Lt0tN23WnVGtErFfj8xgUP2UAneTWgSyr3sGlv87cNenvB6G4C25CBkAV-u7XDfRwYOvSSVy48iZzyaWEqMubvo7FidsPk49aBFFQC7VaUUZ3pGgKS2LlwDuj0Xj-kzPtjHnb~rNsOK25CAAcS3iYKL5VI-Hs~dczTgibQ8Fm4IJQHQaIT~PavxJ7eeNmpP8hdYpRZtQnGxafK1OQv1B6~~4j1IMB~-evRrdg4YkbG6~hQ5hCeut9SISCJEAAAA

If anyone else is having problems or would like some more peers, feel free to add me.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on July 08, 2011, 01:12:02 AM
Heres my destination address too:
Code:
0qaLZmzp1xQ5GpGzA7GXRHdmOmCgwFh13Qldw5vr6FPOpfsVilGq74~tmvk~y7cNWDRsopo6wOqJ-dkNNcyR~7cvgR~rBAUdYncxeBUjrBQNv7CNCvKs0mQ~tyBR5vkg2Fv3odLGn0O2LPaRkvl-Lzw-tXljd~xFk-CZoEpLynmm3miinUpjTmDTN6BlAntH3lv1eJa32Q18HonNvLDjE1~sPd7wlvOXzj~TJVIXEXBXKHpjW~ljxKBc8I8siKdhLQ5t83EtH5wqhI5HGpCgnZz72ChiyxwCfwmwH3nsACNUdbBicvsKpYFXSA4Q~deml07yGSW0fZ39nnL6jgPmDjoplldeiZGS70jhC2DYdXqaqZ-KtIXsBi3aIkskRcJsxRpYCax-K3O~oR~Lpxe9PTkPSkWhZh0BdGIqnd0re2fU6ciGH-ucGQRysLY5MeROLE~mA3PJskAbQ4~MMA2~vgO7N7T00e4d423stHIx5wEikzHzH-P6R1ICvD4HSf4jAAAA


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: myrkul on July 08, 2011, 01:22:17 AM
This is excellent.

I'm watching this.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 08, 2011, 04:08:03 AM
After my last relaunch my peers jumped from 5 to 11! I was starting to worry the 5 of us were the only ones.

My Destination:
Code:
d01K6Fhr2zxazVG7~oVJY8t3J3xDAVGiihv~Uv8-Qauqt9MUwgmhJCX5ThFmq57Q9kV8AR8WEd8Q-MoZjS~nc51imaqw6ND0yBp9HdH5iG~1Ngk~f3BJ-oVdFRuEj~oGZxGUoQpJUKP7qJyEncQI~r9btCGlBzIUmP3WMJtjEwdhtwoBp~Q8PVVBj9u4mHCDbULjUDOLpi2i2uT7ctG0d5~HQsNDpAVAVr4QIsRgyq7lrUaRrcbLTggUw1tQmdR9-6qfjwHkC8a869TVYxCfaVX-5ENtJzrSO1ZGynH2sw7mv33FPLAwSvQAu3AQGY5O7HtmYE-sGlefGwfiv1NuTUXILRSEKB75arzIYCh5MbplEsiYv9ngv2k41WEqLV7Wau9L3VfT8DjMwCoHYNmSh0bUsuT0yI0bNFDul9aRGbE3KdVPS6Ex7qk1wxLl~DT8-2XsJv7ppbG~58Q2B-lDJrL9wtBculKHSYJKNWoczmEooFHPv8v5f9QLIP1IycaIAAAA


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on July 08, 2011, 04:37:56 AM
Does anyone see my offer, because I can't see anyone else's offers.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: CoinMan on July 08, 2011, 05:02:54 AM
Watching this thread.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: myrkul on July 08, 2011, 05:35:43 AM
Blame I2P.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on July 08, 2011, 05:36:52 AM

Great idea, but ... why Java ??? :(
Let's not start a flame war. Every programming language has it's advantages and disadvantages. Also, I2P uses Java, which is probably the main reason.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 08, 2011, 01:10:20 PM
...
EDIT: Maybe post this in project development as well?

I've started a topic in development to discuss technical issues with the exchange: http://forum.bitcoin.org/index.php?topic=27055.0


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 08, 2011, 01:15:45 PM
At this moment, you should see 11 total peers. The number of identities may vary since you both have to be online at the same time to exchange identities.

Every time you restart Dark Exchange it will try to download any new peers (Though it is naive, and likely won't find them all every time). Unfortunately, I2P is pretty slow and it can take a few hours to find a peer and start downloading updates. So, if you want to find as many peers as possible, leave Dark Exchange running for an extended period of time.

I'm going to look for ways to speed this process up.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 08, 2011, 01:36:32 PM
My identity on Dark Exchange is Morpheus. If you don't have it listed in your identity tab you won't be able to find my offers.

I created a bunch of Dwolla to Bitcoin and Bitcoin to Dwolla offers. If you can't find them with a search, let me know. It takes about 10 minutes for the search to completely finish and there is no feedback that the search is in progress, so please be patient.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 08, 2011, 04:57:36 PM
Some feature ideas once everything is nice and stable:

User profiles for each identity. Just a text field users can fill with information like the Bitcoin address, Dwolla ID, mailing address, etc. if they so choose.

PGP integration for the messaging features (are messages public?)

web-of-trust style user rankings, but that's already been requested.

Minimize to systray + systray notifications for new messages, accepted trades, etc.

Some kind of remote API (i was thinking about android apps, but i2p's memory requirements are to great, so a front end is all that seems doable)


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 08, 2011, 06:25:52 PM
I'm using issues on github to track both bugs and feature requests. I have issues for most of your suggestions, and I'll some more for the ones I don't have. You can also comment on the issues directly.

User profiles for each identity. Just a text field users can fill with information like the Bitcoin address, Dwolla ID, mailing address, etc. if they so choose.

I think the user profiles for identities would be a good idea. For bitcoin address and etc, I have the following issues created:

https://github.com/macourtney/Dark-Exchange/issues/23
https://github.com/macourtney/Dark-Exchange/issues/24

I also have an issue for viewing an identity: https://github.com/macourtney/Dark-Exchange/issues/11

This could be expanded to add a profile.

PGP integration for the messaging features (are messages public?)

First, messages (which can only be sent on trades right now) are not public and are automatically signed (though the signature is stripped off when saved). Actually, all data sent between Dark Exchange nodes are both encrypted and signed.

I don't want to integrate PGP if I can avoid it since that would add yet another program for people to install when installing Dark Exchange. On top of that, encryption and signatures are already supported in Dark Exchange. We just need to figure out all the ways we want to use them.

Do you think sending messages directly from identity to identity should be supported? If so, how do we get around the email issue of unsolicited messages? Make people friend each other first? :)

web-of-trust style user rankings, but that's already been requested.

Tracking issue: https://github.com/macourtney/Dark-Exchange/issues/22

Minimize to systray + systray notifications for new messages, accepted trades, etc.

Good idea. I just added a new issue for it: https://github.com/macourtney/Dark-Exchange/issues/25

Some kind of remote API (i was thinking about android apps, but i2p's memory requirements are to great, so a front end is all that seems doable)

I'm worried about this since it could open people up to hacking. However, I created an issue for it: https://github.com/macourtney/Dark-Exchange/issues/26


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 08, 2011, 07:11:07 PM
Do you think sending messages directly from identity to identity should be supported? If so, how do we get around the email issue of unsolicited messages? Make people friend each other first? :)
I think that would be good. Maybe use the eventual trust score system to determine if a message can be sent, like if they have <=0 trust they cannot send messages to people who haven't added them to their friends list (excluding trade messages of course). and include a "flag as spam" button on messages that would decrease the senders trust score. Although that might be abused, for example, have a conversation with someone then go though and flag every message they sent. Maybe limit the spam flag to one flag per sender per recipient per arbitrarily amount of time? Seems over complicated for the time being...yeah...Friends list is good, and an ignore list as well.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on July 09, 2011, 11:17:25 PM
wegotpickles and I have almost completed the first dark exchange trade! :)


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: myrkul on July 09, 2011, 11:20:59 PM
wegotpickles and I have almost completed the first dark exchange trade! :)
The irony inherent in this statement is not lost on me.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 10, 2011, 12:22:10 AM
First trade complete without a hitch!

The irony inherent in this statement is not lost on me.
I'm missing it. Whats ironic?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: myrkul on July 10, 2011, 12:35:57 AM
First trade complete without a hitch!

The irony inherent in this statement is not lost on me.
I'm missing it. Whats ironic?

Announcing and identifying a trade on a dark exchange. ;)


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 10, 2011, 12:47:47 AM
Announcing and identifying a trade on a dark exchange. ;)
Ah! Sorry, I'm a little slow.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 10, 2011, 01:02:02 AM
wegotpickles and I have almost completed the first dark exchange trade! :)

That's awesome! I hope it was a good experience.

Is there any reason the exchange is not complete yet? Was there any problems?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: wegotpickles on July 10, 2011, 02:15:38 AM
Is there any reason the exchange is not complete yet? Was there any problems?
I had the message window freeze up after hitting send once or twice, no errors or anything. I just waited a minute or so and restarted the client and the message had been sent so I don't think it could cause major problems with trades. It might just have been me though, so I'd call it complete. ;D


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 10, 2011, 02:59:12 AM
I had the message window freeze up after hitting send once or twice, no errors or anything. I just waited a minute or so and restarted the client and the message had been sent so I don't think it could cause major problems with trades. It might just have been me though, so I'd call it complete. ;D

It's nothing. I wasn't very careful when writing some of the event code, and the event thread is blocked after most of the button presses. It's easy to fix, but it does look like Dark Exchange is locked up. All you have to do is wait a few more seconds (possibly minutes) and it should work itself out.

I added an issue for it.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 10, 2011, 03:12:30 PM
I've uploaded Beta 3 with more aggressive attempts to download all other destinations in the network. My testing suggests everyone should quickly get all of the destinations in the system.

You can download Beta 3 from: https://github.com/macourtney/Dark-Exchange/downloads


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Herodes on July 11, 2011, 10:31:48 AM
quick question:

Would it be possible to create a market like mtGox, only with a distributed model? I guess we would have to have Agents for fiat money transfer and withdrawals then.

Any idea of how that would be solved?

I guess it's at the moment like this:


Bob wants to buy 100 BTC at 15.0 from Alice. Alice accepts. Bob transfers 100x15USD to Alice and Alice transfers the bitcoins to Bob. How to trust other users? Should there be some kind of escrow, and would we not need a centralized point for escrow? What prevents Alice from never sending the bitcoins to Bob?

Nice initiative though. Thumbs up!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on July 11, 2011, 07:30:16 PM
Bob wants to buy 100 BTC at 15.0 from Alice. Alice accepts. Bob transfers 100x15USD to Alice and Alice transfers the bitcoins to Bob.

Yes, this is exactly how Dark Exchange works right now.

How to trust other users? Should there be some kind of escrow, and would we not need a centralized point for escrow? What prevents Alice from never sending the bitcoins to Bob?

Currently, there is no escrow service or anything really to prevent Alice from never sending bitcoins to Bob. However, when Alice and Bob created their accounts, a public/private key pair was created. When interacting, Alice and Bob can see each other's public key (it's actually shown in several places in Dark Exchange so you can recognize a user). Since all messages between nodes are signed (except certain messages which cannot be signed since they are sent before you have the public keys), Alice and Bob know they are talking to each other and only to each other.

If Alice wants to sell more bitcoin to Bob in the future, she will have to send the bitcoin. Also, it's possible for Bob to warn people not to buy from Alice if she doesn't uphold her end of the deal. There is no way of doing this in Dark Exchange for now, so Bob would have to use this board. However, we are planning on implementing a trust scoring system which would make it easy for Bob to let others know how much he trusts Alice and vice versa.

Would it be possible to create a market like mtGox, only with a distributed model? I guess we would have to have Agents for fiat money transfer and withdrawals then.

I don't think this is possible without creating an authority, or several authorities which centralizes the distributed exchange. It would become more of a federated exchange than a distributed one.

If there is enough demand, it may be a good idea to implement in the future. However, I always want to give people the option to use Dark Exchange in a pure decentralized manner.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Herodes on July 11, 2011, 10:52:13 PM
I like the Dark Exchange idea. I will have a closer look at it. Thanks for the answers.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: jago25_98 on November 22, 2011, 08:53:49 AM
I forgot to run i2p before Dark Exchange the first time I ran it.

It appeared to work find though, creating a username etc. But then I noticed no peers. There should be something to monitor network activity so we know what's going on.

Would also be nice to make more than one search at the same time... or search for multiple offers because I haven't been able to find any yet.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: ovidiusoft on November 22, 2011, 10:47:09 AM
I forgot to run i2p before Dark Exchange the first time I ran it.

Ha, now that you mention it, I did exactly the same :) Now it works, but I can't find anything... I created a offer and searched for it, but it won't find it.

Suggestion: OP, can you add a "in person transfer in <region>" option for trading?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Sultan on November 23, 2011, 12:57:42 PM
Is there still no way to make an offer and have it available for others to view when you go offline?

I understand this is very difficult to do in a decentralised manner, but I feel this problem is halting Dark Exchange's community growth.

It is quite clear that when people log on only to find themselves online, thus no offers, it makes it look like you have entered an empty hall expecting a bustling market. If this happens I believe more people will use it.

My suggestion is to have some kind of 'pass-the-parcel' technique where a node locally stores tgeir offers, and before it logs off it passes those offers to any online nodes before logging off, and thatnode does the same thing, and so on.

When a node comes back online, it can reclaim those offers so that it can broadcadt them itself.

Any thoughts?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on November 27, 2011, 06:45:07 PM
I forgot to run i2p before Dark Exchange the first time I ran it.

It appeared to work find though, creating a username etc. But then I noticed no peers. There should be something to monitor network activity so we know what's going on.

Would also be nice to make more than one search at the same time... or search for multiple offers because I haven't been able to find any yet.

I'll look into adding a warning message if the I2P network cannot be found. Issue 48: https://github.com/macourtney/Dark-Exchange/issues/48

Obviously, multiple searches and searching on multiple payment types is a popular feature request. I already have searching on multiple payment types as an issue: https://github.com/macourtney/Dark-Exchange/issues/37

I just added a new issue for running multiple searches at the same time. Issue 49: https://github.com/macourtney/Dark-Exchange/issues/49


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on November 27, 2011, 06:51:27 PM
Is there still no way to make an offer and have it available for others to view when you go offline?

I understand this is very difficult to do in a decentralised manner, but I feel this problem is halting Dark Exchange's community growth.

It is quite clear that when people log on only to find themselves online, thus no offers, it makes it look like you have entered an empty hall expecting a bustling market. If this happens I believe more people will use it.

My suggestion is to have some kind of 'pass-the-parcel' technique where a node locally stores tgeir offers, and before it logs off it passes those offers to any online nodes before logging off, and thatnode does the same thing, and so on.

When a node comes back online, it can reclaim those offers so that it can broadcadt them itself.

Any thoughts?

There is still no way to make an offer and have it available when you go offline. The 'pass-the-parcel' technique likely won't work since you don't really log off, but just disconnect from the network.

How about every node in the system keeps track of every offer (for now, only a subset in the future). If you're not online, it doesn't matter, someone somewhere has your offer. It would get tricky to keep track of the offers as they are accepted/rejected, but it would be possible.

Would that work for you?

Unfortunately, I haven't had a lot of time to work on Dark Exchange lately. I'm in the middle of adding a trust score to the system. When I have that in, I can look into something like this and fixing other issues.

I didn't realize there was still so much interest in the project.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on November 27, 2011, 07:02:19 PM
I forgot to run i2p before Dark Exchange the first time I ran it.

Ha, now that you mention it, I did exactly the same :) Now it works, but I can't find anything... I created a offer and searched for it, but it won't find it.

Suggestion: OP, can you add a "in person transfer in <region>" option for trading?

I would like to add an in person option, but that would require some significant changes which I'm not prepared to do yet.

I've added another issue for in person transfers: https://github.com/macourtney/Dark-Exchange/issues/50

I make no promises on when I can get to it. Of course, if anyone implements it for me, I'll be glad to merge it in.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Sultan on November 28, 2011, 09:32:33 PM
Is there still no way to make an offer and have it available for others to view when you go offline?

I understand this is very difficult to do in a decentralised manner, but I feel this problem is halting Dark Exchange's community growth.

It is quite clear that when people log on only to find themselves online, thus no offers, it makes it look like you have entered an empty hall expecting a bustling market. If this happens I believe more people will use it.

My suggestion is to have some kind of 'pass-the-parcel' technique where a node locally stores tgeir offers, and before it logs off it passes those offers to any online nodes before logging off, and thatnode does the same thing, and so on.

When a node comes back online, it can reclaim those offers so that it can broadcadt them itself.

Any thoughts?

There is still no way to make an offer and have it available when you go offline. The 'pass-the-parcel' technique likely won't work since you don't really log off, but just disconnect from the network.

How about every node in the system keeps track of every offer (for now, only a subset in the future). If you're not online, it doesn't matter, someone somewhere has your offer. It would get tricky to keep track of the offers as they are accepted/rejected, but it would be possible.

Would that work for you?

Unfortunately, I haven't had a lot of time to work on Dark Exchange lately. I'm in the middle of adding a trust score to the system. When I have that in, I can look into something like this and fixing other issues.

I didn't realize there was still so much interest in the project.

Yeah, I think this is the best idea so far. That way as long as there is one person who is online they can act as a server to start with. As the community grows it will be more distributed.

If private/public key signing was used then we can guarantee who made the offer and who accepted the ofefer. For example an accepted offer can be timestamped so that whenever somebody.accepts an offer that has already been made the accepted offer is rejected.

Ideally the objective is for a critical mass of nodes are always online making sure the orderbook is always up-to-date.

Is there anything I can do to help out, morpheus?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: btc_artist on November 28, 2011, 10:11:33 PM
Has this project gotten any traction?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on December 01, 2011, 02:14:13 AM

Yeah, I think this is the best idea so far. That way as long as there is one person who is online they can act as a server to start with. As the community grows it will be more distributed.

If private/public key signing was used then we can guarantee who made the offer and who accepted the ofefer. For example an accepted offer can be timestamped so that whenever somebody.accepts an offer that has already been made the accepted offer is rejected.

Ideally the objective is for a critical mass of nodes are always online making sure the orderbook is always up-to-date.

Is there anything I can do to help out, morpheus?

There will be some issues in the details of making sure everyone has an up to date list of all offers, and keeping the data clean. I can think of a few now, but once I start implementing it, I'm sure more will come up.

I think there will be some issues keeping time on the network synchronized if we try to base everything on a timestamp. Plus, more than one person can accept an offer at the same time anyways. Though, I don't think it matters, since the one making the offer can choose which trade to fill in the end.

I don't remember your skill set Sultan. Can you program? Do you know Java? Do you know Clojure?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on December 01, 2011, 02:16:40 AM
Has this project gotten any traction?

While there seems to be plenty of interest, there aren't many people using the program.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: finway on December 01, 2011, 02:18:57 AM
I can start it, but i can't find nobody.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: morpheus on December 01, 2011, 02:22:24 AM
I can start it, but i can't find nobody.

Funny, I'm on and can find myself, and the DarkExchange node.

When did you run it last? Is I2P running? Have you downloaded all of the peers?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: freemoney458 on February 13, 2012, 11:13:35 PM
Hi morpheus,

I think you are heading the right way with the DarkExchange client. Do you know any other projects in this category?

The last days, I thought a bit about decentralized, fully automated exchanges. At least in Europe, it would be possible from a technical point of view, see this post:

https://bitcointalk.org/index.php?topic=45751.msg746894#msg746894

Any comments are welcome.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: matthewh3 on October 29, 2012, 10:33:27 PM
I've put an order up tho only connected to two peers  :-\


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: K1773R on December 22, 2012, 06:37:07 PM
awesome tool, how about adding altcoins? i dont get it why ppl dont use this!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: jago25_98 on December 24, 2012, 01:27:50 PM
As much as I love this project I think the hassle of running i2p in addition to needing critical mass has killed it somehow?

Perhaps a fully web interface to #bitcoin-otc would be more successful? - this could then be moved to a eepsite / hidden service / distribute the rep database.



Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Lethn on December 25, 2012, 05:17:37 PM
This projected really needs to be revived, we can't have stock exchanges going down left and right because of a few stupid scammers.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Ryland R. Taylor-Almanza on January 18, 2013, 05:34:05 PM
This projected really needs to be revived, we can't have stock exchanges going down left and right because of a few stupid scammers.
Well, it wasn't really a stock exchange, but I like the idea of reviving it anyways!


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Herodes on January 18, 2013, 06:43:29 PM
I haven't tried this. But what would be the advantage to this over bitcoin-otc ?




Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Lethn on January 20, 2013, 05:36:28 AM
This projected really needs to be revived, we can't have stock exchanges going down left and right because of a few stupid scammers.
Well, it wasn't really a stock exchange, but I like the idea of reviving it anyways!

In that case we need a proper stock exchange BLAH! :P


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: K1773R on January 20, 2013, 11:57:05 AM
This projected really needs to be revived, we can't have stock exchanges going down left and right because of a few stupid scammers.
Well, it wasn't really a stock exchange, but I like the idea of reviving it anyways!

In that case we need a proper stock exchange BLAH! :P
how about cryptostocks?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: uMMcQxCWELNzkt on April 10, 2013, 10:18:31 PM
Hey Morpheus, need a designer to help work on the project? I have a couple of months summer break from UNI and I want to work on a Bitcoin project. I could create graphic designs such as branding, I can also design websites and I (should) also be able to help you rank high up on Google with SEO. I would be happy to work on this in collaboration if interested. I can code in HTML & CSS however I do not have technical knowledge to developer programs such as this. Some promotional work might help public awareness!

If you are interested let me know and I will create some sample ideas.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: dabest1 on April 10, 2013, 10:42:01 PM
This sounds like a great project. Will be checking back on it a little later.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Sultan on May 22, 2013, 07:55:58 PM
A peer-to-peer exchange will always have the problem of 'who sends first' so it comes at high risk, no matter how well disguised under the TOR network it is.

I think this was mentioned before, but the best, and truest way to have a true peer-to-peer network would be to implement more of a Ripple protocol and link it with Bitcoin exchanges.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: traderman on December 06, 2013, 02:02:19 PM
This sounds like a very interesting idea. Any updates from developers, is there still interest in this?


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: miffman on December 07, 2013, 10:45:17 PM
I only found out about this now. I hope this is still up and running. P2P exchange seems like a great idea, considering the way things are going will all the other centralized exchanges


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: Sultan on March 05, 2015, 04:48:24 PM
Sorry for necro-ing this thread.

Wondered if there was any further thoughts or ideas on this decentralised p2p exchange idea.


Title: Re: [BETA] Dark Exchange: a 100% decentralized p2p exchange
Post by: amazon4u on March 12, 2015, 01:47:49 AM
A peer-to-peer exchange will always have the problem of 'who sends first' so it comes at high risk, no matter how well disguised under the TOR network it is.

I think this was mentioned before, but the best, and truest way to have a true peer-to-peer network would be to implement more of a Ripple protocol and link it with Bitcoin exchanges.


You already nailed it here more than a year ago, I am pretty sure this is what killed the cat.