Skip to content
Gene Vayngrib edited this page Feb 9, 2015 · 9 revisions

Not many realize that the externalization of transactions is the biggest value of bitcoin. Bitcoin is a first public transaction log. Wouldn't it be cool if we could extend it to be the transaction database log? This is what we are doing here.

##Mission Tradle's mission is to externalize world's transactions to the blockchain. Why? Because it will allow us to write millions of apps on top of the blockchain, apps that will replace match.com and saleforce.com, and apps that have not been possible before, like a safety net for Craigslist.

This will help Internet grow into an open commercial network, perhaps it will be called the Tradenet.

Approach

We are building Tradle in the open. We are talking about it on Twitter @tradles and at many meetups. We will soon help organize hackathons around it.

Tradle follows the microservices pattern, popularized by the Netflix: small focused components running as separate services. Each can be easily rewritten in your favorite language and replaced, as long as it implements the same wire protocol. In fact we just rewrote java-based bitjoe, bitkeeper, and bitloader into JS, to run in node.js and in Chrome app with browserify.

##Components Each component has its own repository:

  1. http://github.com/tradle/bitjoe-js, see also bitjoe wiki
  2. http://github.com/tradle/bitkeeper-js, see also bitkeeper wiki
  3. https://github.com/urbien/bitloader, see also bitloader wiki.
  4. http://github.com/tradle/urbini, a mobile web framework that helps us create nice UI for our apps and think very little of the blockchain, as it syncs with the blockchain automatically. You can see a working a demo of an IFFTT-style inventory replenishing sample blockchain app, that uses Urbini. We pre-recorded a video for this app to show you how it works.

API

bitjoe is the server that is supposed to be be run by every business (or by an average Joe entering the global commerce scene). It is a gateway to the extended blockchain network. It receives a transaction via a RESTful request, sends this transaction's hash to the bitcoin network and sends the transaction body to the bitkeeper network. In the future transactions will be packed into sidechain blocks and only the block hash will go to bitcoin blockchain. We often use the term chain to mean a bitcoin chain extended with this new ability to store any kind of transactions. This chain is a shared medium between businesses and people, and this sharing opens up opportunities for new unseen before apps.

Storage

Bitkeeper is a server that is run by participants in the network for their own transactional storage, and later by those who want to make money on fees for hosting transactional objects. To be run by the untrusted parties Bitkeeper needs to undergo some planned evolution and provide monetary incentives. At its current design Java implementation of Bitkeeper uses TomP2P and the JS implementation uses mainline DHT and a bittorrent stack to store transactions as files.

DB Sync

To make life easier for app developers we created a DB sync layer that allows writing apps that know nothing of the blockchain. Bitloader is a server that accepts requests from Bitjoe when Bitjoe detects new transactions on the blockchain that need to be loaded into a local database.

Clone this wiki locally