how can I copy Ethereum source code and node software client to modify the data structure to turn it into my own sidechain and how can I build smart contracts in the sidechain so that the sidechain can handle its own smart contracts on it and it has its own deployable sidechain node client software?