I've released my first public Ur/Web application today. It's a trading exchange for two virtual currencies. The currencies are Bitcoin and Namecoin. The former is a general purpose virtual currency. The latter is specific for an alternate DNS project and is used for registering domain names. Trades between the two currencies usually occur on forums and over IRC so I decided to write an online exchange and use Ur/Web for the task. The application, The Bitparking Namecoin Exchange, can be reached at https://exchange.bitparking.com/
It's still in a testing phase but so far is working well. A number of trades have occurred and people have deposited and withdrawn namecoins and bitcoins. The application uses the Ur/Web OpenID relying party library for authentication. There's a bunch of things that still need to be done. Making it look nicer, using more Ur/Web client side features like functional reactive programming, etc but it's up and running. Overall I was very happy with how easy it was to put together. The app does at least one very 'non-pure' process. That is withdrawal of funds. When a user requests a withdrawal a number of database records are updated and then a request is sent to namecoin or bitcoin to actually do the transfer. This request is non-reversible. For this I'm currently using uw_register_transactional and doing the request as the very last thing (it has a NULL rollback argument). One downside of this is I can't get the transaction id of the transaction since the transactional callback doesn't seem to provide a way to return data. I run a periodic task that checks for the withdraws and looks up the transaction id on the bitcoin/namecoin network. This seems to work ok. I'll be releasing the source once I've done a bit of refactoring and fixing the last few issues. I'll post here when done. Chris. -- http://www.bluishcoder.co.nz _______________________________________________ Ur mailing list [email protected] http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
