21 Update #1: Money From Helicopters
by Balaji S. Srinivasan (@balajis)
We’re happy to see the initial reception to the 21 Bitcoin Computer! Our developer forum is bustling, the initial reviews are good (see the end of this post for a sample), and folks are obviously having a lot of fun buying and selling digital goods programmatically with bitcoin.
For those who want to take the weekend to code up some fun little Bitcoin projects, we’re pleased to announce the first software update to the 21 Bitcoin Computer. As we noted last week, each update comes free of charge to buyers of a 21 Bitcoin Computer and enables support for new features and demos. Our first update is codenamed Money From Helicopters. If you have a 21 Bitcoin Computer, you can update to the latest version by just typing the following at the command line:
# After reboot, restart mining and join the marketplace.
# You will also need to restart your endpoints.
21 join 21market
Rebooting will be quick and you can continue developing; just remember to restart any live endpoints. This update is mandatory as it changes a number of things under the hood; among other things, it starts to lay the groundwork for two important long-term features:
- Redecentralizing mining. Our long-term goal is to redecentralize mining via an updated version of p2pool. This is a technically challenging aim that will require a series of 21 updates to get there, of which this is the first. Part of the idea is to first allow 21 Bitcoin Computers to collaboratively mine by connecting to each other via a steadily improving “21 join” command, and to then enable them to connect as individuals or ad-hoc groups to an arbitrary pool via a software update that adds a “21 pool” command. There’s (much) more to it than that, but this update starts us down that path by adding support for “21 join”.
- Virtual Private Marketplaces. The new 21 join command in this update also allows any 21 Bitcoin Computer to access the 21 peer-to-peer network by just typing in one command: “21 join 21market”. This makes it even simpler to buy and sell digital goods from others, as per this example. We think of this as providing built-in support for one of the first purely digital virtual private marketplaces.
In addition to these under-the-hood infrastructure changes, we’ve added a few new utilities like “21 login” and “wallet history”, and also added documentation and code at 21.co/learn for five new tutorials:
- Monetize the Command Line with Bitcoin. Perhaps the most important new tutorial in this release is the demonstration of a new kind of fine-grained SaaS: a command line tool that requires a small amount of bitcoin for each use. We illustrate this concept by showing you how to build a simple command line tool that charges bitcoin to get the latitude and longitude of a specified address. Where this gets interesting is in the implications for independent software development and Linux. First, you can now build a piece of software that is free to distribute and try — but then costs a few satoshis on every invocation. Second, you can bundle a variety of these kinds of command line tools into a Linux distribution — and thereby make several bitcoin-payable services pipe-able at the command line. If you’re building this kind of tool, get in touch at firstname.lastname@example.org and we may include your code in the next 21 update!
- A Crawler for the Machine-Payable Web. The emergence of bitcoin-payable URLs means we will need bitcoin-aware web crawlers. This example shows how to build such a crawler, which can serve as the input to a bitcoin-powered intelligent agent. It also discusses the fact that this kind of web crawler will need to bulk purchase bitcoin on an ongoing basis in order to index the machine-payable web in a search engine.
- English-to-Chinese translation with Bitcoin. We’ve created a simple demonstration of translating English to Chinese by paying a little bit of bitcoin. This shows how you can become an API reseller; you can start adding value by mashing up multiple paid APIs in this fashion. You can also modify this endpoint to do bitcoin-remunerated machine translation or human translation; the implementation is a server-side detail.
- Two new community tutorials. Our first two community tutorials have been edited and published, and the contributors have each been paid in Bitcoin. The first shows how to use the OP_RETURN opcode to store data in the Blockchain while the second shows how to generate a P2PKH hash in Node.js.
We’ll be releasing new 21 updates on an ongoing basis, but the above tutorials should give you plenty to play around with over the weekend. As always, please do get in touch at email@example.com if you have any issues. We also look forward to seeing you in our 21 Developer Community at slack.21.co!