Sheldrake
About
Sheldrake is a blockchain demo network that implements a cryptocurrency(first generation) example without a merkle tree, smart contracts, sidechain and a wallet. The main motivation was practice ocaml, functional programming, blockchain concepts and decentralized applications.
Dependencies
- OCaml 4.12.0
- Dune 2.9.1
- GCC 11.1.0
Compile and Run
On root
$ dune build
to compile(some warnings due to C interfaced code) and
$ dune exec sheldrake
to run.
How to run properly
- You'll need to change the port and execute in different terminals to check the requests working between executions.
- If you have more than one machine you can try to execute in each one and see the requests with server side logs(it's printed in every request).
- You can just execute one instance and test the endpoints with something like postman(Remember to add the header "client" in the request).
TODO List
- [x] DSA(Key generation, Signature and Verification)
- [x] Merkle root
- [ ] Improve error handling
- [ ] Concurrency or Parallelism
- [ ] Real database integration
- [ ] Smart contract
- [ ] Optimize client side
- [ ] Increase test coverage
- [ ] Docker
- [ ] CI
- [ ] Finish README
Limitations
TODO
Contributions
TODO
Authorship
Tiago Onofre