Skip to content

Instantly share code, notes, and snippets.

@theblacksquid
Last active August 29, 2015 14:12
Show Gist options
  • Save theblacksquid/3f5ef52e4d4c988a18b1 to your computer and use it in GitHub Desktop.
Save theblacksquid/3f5ef52e4d4c988a18b1 to your computer and use it in GitHub Desktop.
[PROPOSAL] Buyer-Only OpenBazaar Front-End

Buyer-Only OpenBazaar Front-End

Problem:

Our current implementation of OpenBazaar requires both Buyers and sellers to have a full node running. Though this might make sense for for sellers to have a node up to guarantee full exposure to OB's network, it might not make sense for a casual buyer to have to download a desktop application in order to buy online, because there are already existing marketplaces for that (except for smartphone users, for whom every little thing is an app on your phone).

/u/alphamystic007 said on the subreddit : "... can my online store use openbazaar as a backend while keeping my frontend the same?"

And while @SamPatt has given a very good answer on how to kind of implement that, the prospective buyer would still need to have the full OB client on their PC before hand. That's not necesarily a bad thing, but being a market at its beta stages, its highly unlikely that the buyer would have the full client (or the patience to download one.).

Possible solution:

Build a standalone "pseudo-node" that creates an instance of itself whenever a buyer visits the seller's own website and goes to their "Store" section. This node would only have access to the seller's own OB market (node), but still has the full protection offered by OB's multi-sig escrow and dispute resolution process.

Scope and Limitation:

This is written under the assumption that the seller has his/her own website, and has full access to the website's code, with the full OB daemon installed and running on the server. This solution alone does not provide the buyer with the ability to utilize the entire OpenBazaar network, though this may be made possible using this solution, paired with the already-existing OB search engines.

This falls under the "External Comms" described in @drwasho's OBMP proposal

Implementation:

The pseudo-node would need to be able to do (but is not limited to) the following:

  • Communicate with the seller's OB server in an encrypted way (with certain restrictions for security purposes.)

  • View the item/service listings in a human friendly way.

  • Create One-time signatures for the buyer, to be included in the receipt the buyer receives after placing and paying for their order. (there has to be a way to do this w/o the seller having access to said keys, possibly a downloadable txt file created in-browser)

  • Be able to use the seller's OB instance to automatically connect to notaries and arbiters in the network to notarize the contract, create the escrow address and (hopefully it doesnt come up to) dispute resolution.

  • Provide an interface for buyers to open an inquiry or dispute if problems arise from the purchase (using the one-time signatures mentioned above)

All the above is theoretically possible in .js as it can run natively on the buyer's browser, and generating sensitive info like signing keys and one-time signatures are independent of the server. (One of the reasons why I am reluctantly learning how to use javascript.)

Use Cases & Benefits

  • Buyers will have more places to spend their bitcoins (and other cryptocurrencies), raising awareness about Bitcoin and the entire decentralization movement,

  • Sellers with an existing customer base can offer to take bitcoin as a payment method, and provide their customers with a better form of consumer protection.

  • There is a possibility that once this is built and the entire project has reached a critical mass, entire eCommerce platforms might make their listings available on the OB network (Still a pipe dream in the current state of things, though).

And there, there's my several cents and a smattering of my gray matter. Any input is appreciated.

@gubatron
Copy link

+1 to this effort.

We built something similar at the Miami Bitcoin Hackathon.
We believe shoppers don't need to be part of the p2p network, they can access the network via browser, or via an app that's simply connected through HTTP, thus getting rid of all the NAT issues.

This way the p2p network will not desperatly need UDP or RUDP and a lot of what we already have on OpenBazaar will already work.

This is our pitch (since it was a hackathon we did not decentralize trust, we just used Bitpay, and trust decentralization I'm afraid will be a hard problem to solve, which will require research and testing, maybe Openbazaar sellers should also have as an option to use Bitpay as a gateway service and acquire trust reusing their real world identity if they decide to do so)

Another hard part of decentralized trust is the requirement for notaries. If we reduce the scope to mere shopping and succeed then we have a more credible chance to enhance contracts for other things, but I have a hard time believing any ecommerce solution would be even considered vs what already works well (amazon) if everytime you need to make a purchase, the process can only be finished with the prescense of an arbiter. I love my "Buy with one click" function on amazon, it's so amazing, you can be anywhere with your mobile device, you remember you need to buy something, open the amazon app, search, and in one click you've ordered, we must be able to provide that level of convenience, and waiting for arbiters, dealing with contracts and multisignatures is too hard for the average consumer.

Our proof of concept allows for that today, we just need to finish the seller dashboard, it could be as simple as an import products from text file feature, and this would allow the integration (like you mention here) with existing ecommerce solutions the seller may already be using to process purchases via fiat, but now on bitcoin.

https://www.youtube.com/watch?v=lW5deqZl5qE

https://github.com/gubatron/SellerTrade

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment