Smart contract (SC) is application logic, written in a high-level language, such as Go or JavaScript; when successfully executed, it reads or writes data that eventually gets committed to the ledger. A smart contract does not have direct access to the ledger. A peer can deploy zero or more smart contracts that run as Docker containers. A peer can also deploy multiple versions of a smart contract.