Advanced blockchain course

Smart contract security, advanced development methodologies with Solidity, and private blockchains with Hyperledger Besu

Advanced professional training course on blockchain technologies, with a particular focus on Hyperledger Besu and on developing private blockchains for internal corporate and consortium use; the course also covers smart contract security and advanced development methodologies with Solidity. It is aimed at developers who already have a good knowledge of blockchain technologies and want to go deeper into smart contract development and the design of private blockchains.

The course can be delivered in either Italian or English, and can be held either in person or remotely.

Taking part in the course requires excellent programming skills and prior knowledge of blockchain technologies, Ethereum, and Solidity, and a basic knowledge of JavaScript, Node.js, and Docker is recommended; access to a computer running Linux, Mac, or Windows with WSL2 is also required.

The planned modules, each lasting half a day (4 hours), are as follows:

  • Ethereum basics review
    • EVM, Turing completeness, smart contracts;
    • Wallets, EOAs, and contract addresses;
    • Ether and gas;
    • Transactions and blocks;
    • Networks;
  • Solidity: vulnerabilities and attacks
    • Re-entrancy;
    • Timestamp manipulation;
    • Overflow and underflow, before and after Solidity 0.8;
    • Denial of Service;
    • Forcibly sending ether;
  • Solidity: advanced patterns
    • Pausing and resuming contracts;
    • Checked arithmetic and unchecked blocks;
    • Checkpoints;
    • Merkle trees;
    • Upgradeable contracts via proxies;
  • Private blockchain networks
    • Types of blockchain networks;
    • Hyperledger Fabric;
    • Quorum;
    • Hyperledger Besu;
  • Consensus and Proof of Authority
    • Byzantine Fault Tolerance;
    • Proof of Authority;
    • The Clique algorithm;
    • The Raft algorithm;
    • The IBFT algorithm;
    • The QBFT algorithm;
  • Implementing a Hyperledger Besu network
    • Designing a case study;
    • Defining the characteristics of the private network;
    • Creating the project;
    • Generating the nodes (bootnodes, validators, members);
    • Network configuration: genesis block, static nodes, permissions;
    • Orchestrating and starting the nodes with Docker;
  • Smart contracts
    • Developing a smart contract for the case study;
    • Deploying the smart contract to the private network;
  • Server-blockchain interaction
    • Key management;
    • Application server with Node.js;
    • Submitting transactions and interacting with the smart contract;
    • Subscribing to events;

During the modules, preparatory exercises will be provided for learning the topics covered.