Bitcoin Forum
November 13, 2024, 06:30:22 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they strongly believe that the creator of this topic is a scammer. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: [1] 2 3 4 5 »  All
  Print  
Author Topic: [BETA] Dark Exchange: a 100% decentralized p2p exchange  (Read 15848 times)
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 12:13:22 AM
 #1

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! Smiley
SlipperySlope
Hero Member
*****
Offline Offline

Activity: 686
Merit: 501

Stephen Reed


View Profile
July 05, 2011, 02:10:31 AM
 #2

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

blap
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile
July 05, 2011, 02:25:29 AM
 #3

Quote
## Usage
Dark Exchange is currently under development and cannot be run yet.
=(
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 02:42:19 AM
 #4

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

elmom
Newbie
*
Offline Offline

Activity: 21
Merit: 0


View Profile
July 05, 2011, 06:10:32 AM
Last edit: July 05, 2011, 06:40:44 AM by elmom
 #5

"lein run" complained about not finding drift*-SNAPSHOT, changed that and it runs. Takes A LOT of memory though Sad, which is not really unexpected for Java in general...

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

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?
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 12:54:48 PM
 #6

Quote
## Usage
Dark Exchange is currently under development and cannot be run yet.
=(

Fixed this to point to the wiki. Smiley

https://github.com/macourtney/Dark-Exchange
Vladimir
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1001


-


View Profile
July 05, 2011, 12:59:09 PM
 #7

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?

-
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 01:13:04 PM
 #8

"lein run" complained about not finding drift*-SNAPSHOT, changed that and it runs. Takes A LOT of memory though Sad, which is not really unexpected for Java in general...

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

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.
haydent
Full Member
***
Offline Offline

Activity: 154
Merit: 100



View Profile
July 05, 2011, 01:20:52 PM
 #9

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

2x Gigabyte 6950 OC @ 920/450 w/ ati tray tools (1 shader modded) - 760Mhs on ozco.in 0% fee aus pool
btc: 1HS5Brzcsh7XkJn566XYbvfpa2JuBRBdss
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 01:22:37 PM
 #10

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.
blap
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile
July 05, 2011, 01:44:44 PM
 #11

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.
SlipperySlope
Hero Member
*****
Offline Offline

Activity: 686
Merit: 501

Stephen Reed


View Profile
July 05, 2011, 02:19:47 PM
 #12

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!
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 02:28:46 PM
 #13

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. Sad
SlipperySlope
Hero Member
*****
Offline Offline

Activity: 686
Merit: 501

Stephen Reed


View Profile
July 05, 2011, 02:32:48 PM
Last edit: July 05, 2011, 11:00:11 PM by SlipperySlope
 #14

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 ...
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 05, 2011, 05:01:02 PM
 #15

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.
tanerlorn
Member
**
Offline Offline

Activity: 109
Merit: 10



View Profile
July 05, 2011, 09:09:26 PM
 #16

Do you have an address where donations can be sent?
wegotpickles
Newbie
*
Offline Offline

Activity: 49
Merit: 0



View Profile
July 05, 2011, 10:41:00 PM
 #17

WOO! I've been watching this project on git for about a month now, I'm so excited to try this!  Grin
wegotpickles
Newbie
*
Offline Offline

Activity: 49
Merit: 0



View Profile
July 05, 2011, 11:27:33 PM
Last edit: July 05, 2011, 11:39:36 PM by wegotpickles
 #18

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
Vasco
Donator
Full Member
*
Offline Offline

Activity: 213
Merit: 100

SEIZED by Gunthar


View Profile
July 06, 2011, 05:27:54 AM
 #19

What a great concept, I eagerly await the results!

morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 06, 2011, 07:32:57 PM
 #20

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.
Pages: [1] 2 3 4 5 »  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!