Building dapps on Ethereum – part 2: smart contracts