blockchain smart contract best practices
TRANSCRIPT
![Page 1: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/1.jpg)
Blockchain Smart Contract Best PracticesDavid Paluy@dpaluy
September 2017
![Page 2: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/2.jpg)
Prepare for Failure
![Page 3: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/3.jpg)
Failure Preparation Checklist
Keep it Simple
Pausable Contract
Manage the amount limit
Define upgrade path
Stay up to date
![Page 4: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/4.jpg)
Keep it Simple
Simple Logic
Clarity over Performance
Modularize code
![Page 5: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/5.jpg)
Pausable Contract
![Page 6: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/6.jpg)
Manage the Amount limit
![Page 7: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/7.jpg)
Can I upgrade the Contract?
![Page 8: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/8.jpg)
NO, but...
![Page 9: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/9.jpg)
Upgrade path
1. Contract is eternal, unless destroyed2. Make a workaround
![Page 10: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/10.jpg)
Centralized?
![Page 11: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/11.jpg)
DELEGATECALL
Read Solidity docs
a contract can dynamically load code from a different address at runtime...
![Page 12: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/12.jpg)
![Page 13: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/13.jpg)
Use latest stable libraries
![Page 14: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/14.jpg)
Lock pragmas to specific compiler version
![Page 15: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/15.jpg)
Explicitly mark visibility
![Page 16: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/16.jpg)
References
Read the Manual
Solidity STD
Smart Contract Best Practices by ConsenSys
![Page 17: Blockchain Smart Contract Best Practices](https://reader033.vdocuments.mx/reader033/viewer/2022051318/5a64d9227f8b9a76038b4b01/html5/thumbnails/17.jpg)
Safe and Secure Coding!@dpaluy