serial experiments blockchain
- Common Lisp 97.3%
- Shell 1.6%
- HTML 1.1%
| www | serve and load remote chains | |
| chain.json | switch to json for (de)serialization | |
| dumpling.asd | refactoring... | |
| dumpling.lisp | improve node communication | |
| logo.png | serve and load remote chains | |
| package.lisp | initial stuff | |
| README.md | update README again | |
| run-node | improve node communication | |
dumpling
Experiments with blockchain and coin stuff. Most of the initial code is adapted from this tutorial.
What you can do with dumpling, as of <present day, present time>
You can use ./run-node CHAIN-FILE PORT PEER to run a mining node on
http://localhost:PORT, saving a json representation of the chain in CHAIN-FILE
and communicating with a single peer node, at the address PEER.
Right now, each node mines successive blocks, reports new blocks to its peer, and listens for new blocks from its peer. There are a few basic things that still need to be done:
- actively storing new blocks in
CHAIN-FILE - validating blocks from peers
- synchronizing with peers (probably the hardest of these three)
A lot of those three things are partially implemented already, so feel free
to take a look at dumpling.lisp if you're interested.
Finally, there are a few things I want to experiment with, once those aforementioned 'basic things' are implemented:
- use https
- try out alternatives to proof-of-work
- improve consensus and synchronisation mechanisms (???)
- use dumpling for (non-serious) NFTs, monetary transactions, or something else
License
GPLv3