• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Open Bazaar integration - pre-proposal

I can see from their perspective why support for other cryptocurrencies would be low down the list, they have a lot of work to do improving the core marketplace features, without having to worry about a multitude of payment options, especially when nobody can say which ones will be most important a year from now. But this is exactly why I think Dash is such a great fit: if this experiment turns into something functional, it might get approved as a budget proposal, and then someone can be paid to work on it, taking the burden off the OB team. (If Dash overtakes Bitcoin in usage, they'll want to maintain it themselves; in the mean time, it may be economically justified for Dash to pick up the bill.)



Yep, I want to keep hacking away at this. I'll spend a few hours a day next week on it and see how close I can get to a real payment.

Also I have had a thought. I'm now paying for a VPS for this for development purposes. It's only a small €10/month server, but I paid real dash to use it. I was thinking I could put in a budget proposal to reclaim this. Is this worth doing, or is €10 so small as to be considered "spam" as a proposal? (I don't want to claim anything for development time, until I've been able to commit regularly to it for a while, and have a proof of concept up and running.)

Yeah, i was chatting to the OB support person. I think the OB developers are big BTC believers. Dash isn't on their radar right now. I think polishing the platform and trying to monetise their idea is the key priority.

re: proposal - yeah, i think you should definitely stick it in. We haven't seen many non-core developer proposals. You have my MN votes for sure!!! This is the kind of community initiative that should be encouraged! Defo not too small. Its a real expense. Make sure u claim for the 5 dash budget proposal.
 
I can see from their perspective why support for other cryptocurrencies would be low down the list, they have a lot of work to do improving the core marketplace features, without having to worry about a multitude of payment options, especially when nobody can say which ones will be most important a year from now. But this is exactly why I think Dash is such a great fit: if this experiment turns into something functional, it might get approved as a budget proposal, and then someone can be paid to work on it, taking the burden off the OB team. (If Dash overtakes Bitcoin in usage, they'll want to maintain it themselves; in the mean time, it may be economically justified for Dash to pick up the bill.)



Yep, I want to keep hacking away at this. I'll spend a few hours a day next week on it and see how close I can get to a real payment.

Also I have had a thought. I'm now paying for a VPS for this for development purposes. It's only a small €10/month server, but I paid real dash to use it. I was thinking I could put in a budget proposal to reclaim this. Is this worth doing, or is €10 so small as to be considered "spam" as a proposal? (I don't want to claim anything for development time, until I've been able to commit regularly to it for a while, and have a proof of concept up and running.)

great work !!
a proposal cost you 5 dash to submit (for the 10 Euro)
why don't you post and address and we tip this off and done :rolleyes:
 
great work !!
a proposal cost you 5 dash to submit (for the 10 Euro)
why don't you post and address and we tip this off and done :rolleyes:

I have an idea. 2 small FlokiNET servers would cost 20 EUR, which is about 22 USD, which is about 2.75 DASH. I will round that up to 3. If I put in a budget proposal for 4 DASH/mo for 5 months, I will have enough for 2 servers + transaction fees etc, and recoup the cost of the proposal. Sound ok?

What I like about this is that as FlokiNET accept DASH, I can make a wallet specifically for this, and both the income and expenditure will be directly visible on the blockchain, so you can see the Dash budget paying a supplier. That's pretty cool :)
 
Small question: is it documented anywhere what the valid format of testnet addresses is? I've searched the wiki, but I can't see anything. From looking on the testnet block explorer it seems all addresses are of the format yXXX…, but it's never safe to assume. (On a related note: where is the format of valid mainnet addresses best documented?)
 
Small question: is it documented anywhere what the valid format of testnet addresses is? I've searched the wiki, but I can't see anything. From looking on the testnet block explorer it seems all addresses are of the format yXXX…, but it's never safe to assume. (On a related note: where is the format of valid mainnet addresses best documented?)

I believe @UdjinM6 or @flare can point that out
 
Small question: is it documented anywhere what the valid format of testnet addresses is? I've searched the wiki, but I can't see anything. From looking on the testnet block explorer it seems all addresses are of the format yXXX…, but it's never safe to assume. (On a related note: where is the format of valid mainnet addresses best documented?)
mainnet https://github.com/dashpay/dash/blob/v0.12.1.x/src/chainparams.cpp#L130-L131
testnet https://github.com/dashpay/dash/blob/v0.12.1.x/src/chainparams.cpp#L239-L240
 
I have just discovered the OpenBazaar server has a requirement for bitcointools 1.1.44, which is vbuterin's Python toolkit.

Has bitcointools been ported to Dash? I found @vertoe's excellent Call for devs: Software adoption thread but I can't see it listed.

I think this is a deciding factor, as the Python implementation of the OB server is due to be decommissioned. If a port of bitcointools both exists and is maintained, I'll continue with the spike on the Python code base. If not, it looks like it's time to learn Go :)

I just checked the Go implementation of the OpenBaazaar server and it has btcsuite libraries among its dependencies, specifically:
  • btcsuite/btcd/blockchain
  • btcsuite/btcd/btcec
  • btcsuite/btcd/chaincfg
  • btcsuite/btcd/database
  • btcsuite/btcd/txscript
  • btcsuite/btcd/wire
  • btcsuite/btclog
  • btcsuite/btcutil
  • btcsuite/btcutil/base58
  • btcsuite/btcutil/bloom
  • btcsuite/btcutil/coinset
  • btcsuite/btcutil/hdkeychain
  • btcsuite/btcutil/txsort
  • btcsuite/btcwallet/internal/helpers
  • btcsuite/btcwallet/wallet/internal/txsizes
  • btcsuite/btcwallet/wallet/txauthor
  • btcsuite/btcwallet/wallet/txrules
  • btcsuite/fastsha256
  • btcsuite/golangcrypto/ripemd160
  • btcsuite/seelog
I don't see a way round it – if we want native support for Dash in OpenBazaar, we will at some point need a Dash port of btcd and related tools. That's quite a yak. Any thoughts?
 
Last edited:
I think I've got as far as I can with this and I don't know what to do next. (This is why I didn't want to put in a budget proposal right away, in case I came unstuck.)

It looks like either continuing to work on the existing Python server implementation, or switching to developing on the new Go implementation, would both require porting a Bitcoin client library to Dash. Porting the Python library for the purpose of OB seems a waste of time as that implementation will be decommissioned. That leaves porting the necessary components from btcsuite, a project which definitely comes under the category of "how long is a piece of string". And I don't know *anything* about Go.

btcd is a full Bitcoin client implementation, so (unless it's possible to work with a small subset) maintaining a btcd fork could turn out to be far more work that the OB integration it's needed for. It doesn't really strike me that Dash needs a second client implementation right now, and in any case a direct port would be incomplete (no support for InstantSend etc), and it would be very time consuming to keep everything in sync.

I don't want to give up on OB-DASH, but the next step is looking way beyond my skills and capacity.

Does anyone have any ideas? What are your opinions, is this still worth doing?
 
I think I've got as far as I can with this and I don't know what to do next. (This is why I didn't want to put in a budget proposal right away, in case I came unstuck.)

It looks like either continuing to work on the existing Python server implementation, or switching to developing on the new Go implementation, would both require porting a Bitcoin client library to Dash. Porting the Python library for the purpose of OB seems a waste of time as that implementation will be decommissioned. That leaves porting the necessary components from btcsuite, a project which definitely comes under the category of "how long is a piece of string". And I don't know *anything* about Go.

btcd is a full Bitcoin client implementation, so (unless it's possible to work with a small subset) maintaining a btcd fork could turn out to be far more work that the OB integration it's needed for. It doesn't really strike me that Dash needs a second client implementation right now, and in any case a direct port would be incomplete (no support for InstantSend etc), and it would be very time consuming to keep everything in sync.

I don't want to give up on OB-DASH, but the next step is looking way beyond my skills and capacity.

Does anyone have any ideas? What are your opinions, is this still worth doing?

I have forked btcd and will start migrating it to Dash as time allows

--> https://github.com/dashpay/godash

The most effort will be to port x11hash to Go, maybe @QuantumExplorer wants to chime in as he already ported it to obj-C and Javascript ;)
 
I have forked btcd and will start migrating it to Dash as time allows

--> https://github.com/dashpay/godash

The most effort will be to port x11hash to Go, maybe @QuantumExplorer wants to chime in as he already ported it to obj-C and Javascript ;)

Well the x11 port took me 4 solid weeks (for 9 hashes) (mainly because of no support for 64 bit integers). objc is just wrappers around c code so that was really quick last year. It would probably take me 3-4 weeks to port this to go. It would go faster because of 64 bit support, faster because I've done it already, slower because there are 11 to be done, and slower because I've never programmed in go before :[]
 
@flare Well we need blake512 (there are a few differences). sha3 and the keccak we use aren't exactly the same either, since they changed a few parameters when releasing sha3. Skein is done yeah :)
 
It seems you can use dynamic linked C libraries with Go, so we could start with using x11 from libcrypto from Dash Core - I'll need to investigate this further though...
 
and slower because I've never programmed in go before :[]

I know how you feel!!!

This is all promising though. I'll download the Go version of the OB server and see how far I get using it in place of the Python implementation (right now I have no idea exactly way behaviour has been re-implemented.) With any luck I'll be able to make everything I've written so far work again in Go without too much work, as I didn't make many changes to the server.

I imagine it will take me a week or two to get back to where I was. After that I'll start poking around to see what godash will need to implement to add contract payments.
 
Yet again I have been sidetracked by life and haven't spent any time on this lately.

I am thinking that there is something I can more productively spend my time on for Dash and that I should park this for now. There are two impediments to working on Dash integration for OpenBazaar: first, it's undergoing a lot of redevelopment for OB 2 and the Go server; second, there isn't yet a Dash implementation of the Go Bitcoin client btcd. They're both problems that can be overcome, but I'm not a Go developer (even less so than JS and Python, which I can just about copy and paste!) nor do I really understand OB in detail, and so all put together I'm not the best person for this.

I have recently started looking again at computer modelling and simulation. I discovered that in the 2-3 years since I last did anything with this, there has been a book published Agent-Based Modelling in Economics, which I have just bought. I've spent a number of years learning about systems and modelling and I think this might be a valuable use of my time for Dash. Unfortunately I don't think I can fit in both projects, so given that I have a better understanding of modelling, and that OB-Dash is for me a bit like swimming against the tide, I think I can get more out of time spent on modelling and simulation. (i.e. I think OB-Dash is the second most valuable thing I can work on, and I would prefer to work on the first.)

I have some amount of working code, and after poking my way around OB I've got some understanding of how it works. So, if anyone else wants to take this up I will do my best to help.

One last thing: the price of DASH has shot up like a bullet recently. If this lasts, maybe the increased budget value will help pay someone to work on OB integration? Someone with decent Go skills and a reliable amount of free time could probably drive this forwards quite quickly.
 
It seems you can use dynamic linked C libraries with Go, so we could start with using x11 from libcrypto from Dash Core - I'll need to investigate this further though...

Linking c code is very easy and has little to no overhead for single threaded code, with multi-threaded code on the other hand it can be a performance killer sins most threads are paused every time a call to c code is being made. With that said I'm going to be poking btcd and the dash client for a while, no promises for now.

I fell in love with go about 8 months ago and December is my month off ;)
 
Last edited:
Linking c code is very easy and has little to no overhead for single threaded code, with multi-threaded code on the other hand it can be a performance killer sins most threads are paused every time a call to c code is being made. With that said I'm going to be poking btcd and the dash client for a while, no promises for now.

I fell in love with go about 8 months ago and December is my month off ;)

Cool - i have already "ported" btcd to Dash some time ago: At least it is compiling, but x11 and DGW are obviously missing :) --> https://github.com/dashpay/godash
 
That looks interesting ; )
https://twitter.com/brianchoffman/status/802618078915923968

Screen Shot 2016-11-27 at 3.34.52 PM.png
 
Back
Top