The 21 Marketplace

Posted by Balaji S. Srinivasan, Veerbhan Kheterpal

The 21 Marketplace

Overview

The goal of 21 is to allow you to buy and sell digital goods and services with other 21 users. That's where the 21 Marketplace features come in. There are three components to the marketplace:

  • Direct peer-to-peer networking (the 21 Network)
  • An online developer community (the 21 Developer Community)
  • Command line tools for listing endpoints (the 21 Marketplace)

Let's discuss these in turn.

The 21 Network

An interesting aspect of marketplaces in the physical world is that sellers of goods are typically more persistent than buyers. That is, your local coffee shop is a persistent physical entity, but the group of coffee buyers is a dispersed, ephemeral set that can only be identified as "buyers" by virtue of their aggregation at the coffee shop. This occurs for many reasons, but a prime one among them is that selling is usually more difficult (and requires more specialized equipment) than buying. To buy one needs only a unit of currency; to sell a competitive product one must often have capital assets of some kind, often requiring a persistent physical space.

For digital marketplaces, this principle applies in a different form: sellers tend to be persistent servers at discoverable endpoints, whereas buyers tend to be evanescent and ephemeral web surfers - or clients.

If one is interested in using Bitcoin to enable the purchase of digital goods, then, it stands to reason that we need to (a) create a critical mass of always-up, bitcoin-payable servers and (b) enable bitcoin-equipped clients to find and then directly connect to these servers. Moreover, in order for the Bitcoin experiment to remain maximally decentralized and censorship resistant, these servers should be standalone and mobile to the maximum extent possible rather than hosted solely at static IPs.

This is a large part of what we're trying to achieve with 21. A key technical requirement for these goals is for each 21 instance to be able to directly connect to each other to exchange packets in return for payments. That is, peer-to-peer digital commerce greatly benefits from direct peer-to-peer networking.

We've tried to make this very easy with 21. You just need to execute the following command to join a peer-to-peer network composed of other 21 instances:

21 market join

That command will make your device join a special peer-to-peer network which we think of as one of the first "virtual private marketplaces". Every device in this network has 21 installed, has a supply of bitcoin, and has the ability to buy and sell with other endpoints. At this time, only 21 users can access this network. Moreover, each device also has a globally unique device ID; you can print out yours by doing this:

python3 -c 'from two1.commands.util import zerotier; print(zerotier.device_address())'
python3 -c 'from two1.commands.util import zerotier; print(zerotier.get_address("21market"))'

Those commands will respectively print out a device ID that looks like b52b8ecf37 and a virtual IP that looks like 10.244.238.5. The device ID is a unique identifier of your device in this network, and the virtual IP will be used to allow other users in the 21 Network to buy and sell digital goods and services with you.

Make sure to change your password!

Note: after executing this code you will be on a public network with a virtual IP. You should ensure you have a strong password for your account nonetheless by running:

passwd

Most of the people on here will probably be other friendly 21 Developers, but we cannot guarantee it. The primary difference from the internet is that all connected parties know that the other IPs on this network are also primarily running 21.

The 21 Developer Community (slack.21.co)

Once you are connected to this network, it's time to find peers that you can buy digital goods and services from. That is the purpose of the 21 Developer Community, hosted at slack.21.co.

Within this community, you can ask for technical support, meet other 21 Developers, find people to test out your endpoints and buy from them, and experiment with bitcoin-denominated digital commerce. The idea is to make it a fun place to go to just hang out and talk about micropayments and bitcoin-payable apps with other people of like mind. As communities within different geographical regions gain critical mass, we may periodically hold offline meetups and hackathons for the 21 Developer Community, starting in Silicon Valley. Bug fixes and feature requests alike are welcome!

The 21 Marketplace interface

The 21 Marketplace complements the developer community. At the marketplace, you are able to search for machine-payable endpoints with 21 search, buy and publish endpoints with 21 buy and 21 publish, and rate other participants in the marketplace with 21 rate.

Please visit the Marketplace to see what apps are available or read the documentation to learn how to publish your own app.



Author(s)
Balaji S. Srinivasan, Veerbhan Kheterpal