

Jeff Garzik, Bitcoin core developer and luminary, just released a preview for a proof-of-concept “Mechanical Turk” using the 21 Bitcoin Computer and its discovery marketplace. The idea behind a Mechanical Turk system is to have small jobs offered that can be done by automating crowdsourcing the delivery of work and payment for work.
When 21 Inc. came out of stealth and revealed its intent to put a Bitcoin mining apparatus in everything (from lightbulbs to toasters) it came to many as an interesting move. Shortly thereafter 21 released the 21 Bitcoin Computer, a micro form factor computer capable of running Linux coupled with a Bitcoin miner connected to a network for discovery and functionality.
This appears to be an obvious Internet of Things move where 21 would facilitate autonomous devices to make their own money and exchange bitcoins (as a digital currency of value) for services from other devices. Garzik’s proof-of-concept with the automated Mechanical Turk shines a light on how that might work.
Garzik’s Turk preview is still untested code, but it provides a framework and proof-of-concept that can be built on as well as an API that connects it to the 21 Bitcoin Computer marketplace for discoverability. This means that once the API and underlying code is completed, users of the 21 Marketplace can find Turks, sign up for jobs, and get paid in bitcoin for proof-of-work.
The project is currently documented and the code available on GitHub at Garzik’s 21 Playground repository.
To provide for a demo the Turk works with a simple job currently. A supervisor submits an image and a list of questions about said image; then a minimum number of workers is set and a bitcoin reward is specified. The job is posted and workers then can download the image, answer the questions and submit results. The API collects the work, and when the set number of workers have submitted answers they are compared for similarity. The most matches (i.e. the expected most-accurate answers) then receive the bitcoin reward for the job.
Garzik notes that the final comparison for producing rewards is not yet working, but everything else functions.
Setting up is easy, simply download the codebase from GitHub then use “./mkdb.sh”. After that, running the server uses the command line “python3 turk-server.py”.
Accessing the API uses extremely simple HTTP GET/POST commands (listed in the documentation).
A crowd of human workers all doing the same task for a small reward works well in crowdsourcing, but a bunch of machines all doing the same task and collating results is the start of distributed automation. photo credit: New office in Warsaw via photopin (license)
The foundation is laid for allowing tasks to be created and submitted to a Turk-like program, perhaps it will even be Garzik’s own in the future, but the biggest obstacle will be the part that is not working yet: verifying the final product.
While a simple comparison of results might help shake out the most common answer, this is not always proof of accuracy and it does not account for potential bad actors attacking a system to steal bitcoins by submitting the same answers.
Already existing innovations used by Amazon.com Inc.’s Mechanical Turk (which also does crowdsoucing) include double-checking work by making jobs out of job verification as well as leveraging machine learning and analysis in order to filter results for accuracy. Although the latter solution is rather out of scope for a tiny Linux computer, it could potentially be done by a network of 21 Bitcoin Computers that specifically do machine learning and data analysis for bitcoin.
Other potential uses for this sort of software could be an automated system that offers small processing jobs to other autonomous systems for a small bitcoin reward. Multiple workers all doing the same processing job and returning the results would provide for consensus error-correction.
The Turk preview is not the only project that Garzik has cooking on the 21 Bitcoin Comptuer system and his GitHub repository is a good place to get ideas.
Other projects include apibb: a rendezvous API that advertises your node as having a service to offer; causeway: a key/value storage server geared toward small files with ECSDA signature auth; fortune: an old UNIX service clone that spits out a pithy fortune cookie saying; kvdb and kvram: a single node key/value API, backed by reliable storage or memory respectively.
THANK YOU