Nicotib – an Erlang interacton with the bitcoin blockchain
I have just made public a project I am working on. The reason for not having been public already is that I didn’t think there was anything important to share on it. It was just a tool to get to know the inner guts of bitcoin. What have changed now, is that, despite me not having gotten to know all the guts of bitcoin, I think I have built an interesting framework for people to work on. It works the same way whether you want to start a client, a server or both. For the clients it creates a pool of processes (gen_servers) and each holds a socket. For the server it relies on ranch. The advantage is that all this is transparent and you can concentrate on implementing the callbacks that as an Erlang behaviour have to be implemented. The idea is that you can implement a full bitcoin node, a SPV light client or anything it comes to mind with the OTP reliability and friendliness to concurrency that Erlang offers. In order to offer a prove of work, I had to add an address and header storage modules. This two along with the protocol module and the script moduleg need to be improved and further developed. I would appreciate any feedback and/or help.