All projects
Archived

OpenBazaar

A peer-to-peer decentralized marketplace. One of several open source projects I contributed to as a volunteer, working across the Electron client, the contract system, and a WebSocket SDK.

Why it exists

One of several open source projects I contributed to around 2015. I was not paid for this work, I came in because I was interested. Cryptocurrency was newish at the time, Bitcoin was the main player, and I was reading whatever I could find on peer-to-peer systems. OpenBazaar lined up two things I cared about: a decentralized marketplace with no platform owner, and a contract layer that made the trade itself the source of truth instead of relying on a centralized escrow.

Overview

OpenBazaar was a peer-to-peer decentralized marketplace. Instead of listing items on a platform that owned the buyer, the seller, and the transaction in the middle, every participant ran a node and traded directly with other nodes. There was no central server taking fees, no account to be banned from, and no platform-level escrow.

This was one of several open source projects I contributed to around 2015. I was not paid for it. I came in because I was interested in peer-to-peer technology and the early shape of cryptocurrency.

How I Got Involved

I started on the Electron desktop client, diving into the overall theming and basic UI features inside the app. From there, drwasho needed help with the contract system he was working on, so I came in to help with that. Later, I built the SDK that connected the client to the backend node.

What I Worked On

Electron client (theming and UI features)

The OpenBazaar-Client was the desktop app users actually ran. My early work was diving into the theming and basic UI features. Nothing exotic, but it was the surface most users touched, so it mattered that it felt finished.

Ricardian contract system

I helped drwasho build out the contract structure. My name is on the contracts in drwasho/OB-Common-Accord as one of the contributors. The interesting constraint was keeping the contracts as legally readable as possible while keeping the same structure machine-parseable so the system could actually execute against them. The contract layer was not the part of the project that drew me in, but the work itself was a useful problem: prose and protocol in one document.

openbazaar-connector (WebSocket SDK)

Published on npm as openbazaar-connector. A small JavaScript SDK that wrapped the WebSocket interface to a running OpenBazaar node, so the client (and any other JS app) could talk to the underlying network without re-implementing the protocol.

Why I Did It

The peer-to-peer side was what pulled me in, especially around crypto. Bitcoin was the main player and the rest of the ecosystem was still finding its shape. Most P2P projects of that era were focused on the network and currency layer and not much else. The missing layer, to me, was the contract one: two strangers being able to agree on a trade, with a real escrow flow sitting underneath the conversation. That part was interesting even though I was not the one driving it.

I tried to help across as many parts of the project as I could before time pressure forced me to step back. I kept watching it after.

Status

OpenBazaar as a network shut down in 2021. The repositories, contracts, and the npm package are still around as historical archives.

Looking back, it was one of the good projects I have been a part of. Smart, brilliant people working on it together. Being able to integrate across UI, API, protocol, and even the legal-readable side of the contracts taught me how to coordinate inside a large open source team, and how each of those layers actually has to line up for the whole flow to work end to end.