From shiba to lion : first session
This post is about a series of workshops I animate (with another member of the association : Quentin), taking place in Lyon at INSA. I will make a post about each session, describing what has been done.
These workshops are intended to teach by doing the technical basis of Bitcoin-like cryptocurrencies. In practical terms, we want to start from scratch (by forking Bitcoin source to make a new network), and, step by step, achieve trickier things. Concretely, I would like to achieve atomic swaps and payment channels before early 2019, and then make a 51% attack on our own network.
The first session
For this first meetup, we have presented the specifications of the INSAcoin, forked from Litecoin 0.8 and modified with the student in October (namely the block reward, the block generation time, the coinbase transactions maturity, etc..). We then fetched the source from the Crypto-Lyon Github repo :
git clone https://github.com/Crypto-lyon/INSAcoin
And then we installed the dependencies and compiled it :
su -c 'apt install libssl1.0-dev libssl1.0.2 libssl1.1 libboost-all-dev miniupnpc build-essential libtool autotools-dev automake pkg-config libssl1.0-dev libevent-dev bsdmainutils python3 software-properties-common libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler wget git qt5-default && wget -qq https://raw.githubusercontent.com/Crypto-lyon/INSAcoin/master/cryptolyon/install_libdb4.8.sh && chmod +x install_libdb4.8.sh'
su -c './scripts/install_libdb4.8.sh amd64'
cd src && make -f makefile.unix -j 2
cd .. && qmake && make -j 2
After having built the binaries, we started to use the wallet step by step, making transactions, generating blocks, and sending a few RPC commands via the debug console. While experimenting, we (Quentin, Patrick and I) explained what was going under the hood of each action.
In the next session, I’ve planned to drop the GUI and beginning to dive a little bit more into complex aspects : setting up the daemon, setting up a service, speaking to the daemon via the CLI, decoding raw transactions, maybe parsing the block chain .. The content will be depending on time, question, and interest of the participants.