A clojure implementation of a blockchain based on Learn Blockchains by Building One
You will need Leiningen 2.0.0 or above installed.
To get the dependencies, run:
lein deps
To start a server for the application, run:
lein ring server
- Requesting the whole Blockchain:
$ curl -X GET 127.0.0.1:8090/chain- Mining coins:
$ curl -X GET 127.0.0.1:8090/mine- Make a new transaction:
$ curl -X POST -H "Content-Type: application/json" -d '{
    "sender": "d4ee26eee15148ee92c6cd394edd974e",
    "recipient": "someone-other-address",
    "amount": 5
}' "http://127.0.0.1:8090/transactions/new"- Register a new node:
$ curl -X POST -H "Content-Type: application/json" -d '{
    "node": "http://127.0.0.1:8091"
}' "http://127.0.0.1:8090/nodes/register"- Resolving Blockchain differences in each node:
$ curl -X GET 127.0.0.1:8090/nodes/resolvelain test
- Create a self contained version of application with: lein ring uberjar;
- Run docker build -t paoloo/blockchain .to create image;
- And finally, run docker run -p 8090:8090 paoloo/blockchainto instantiate it.
MIT
Copyright (c) 2017 Paolo Oliveira