Web3, learning solidity and the ethics of decentralized apps