A collection of links for self-learning and for anyone else to use. Feel free to recommend or remark on either links or on the gist structure!
- Overview of Smart Contracts (ConsenSys): https://medium.com/@ConsenSys/a-101-noob-intro-to-programming-smart-contracts-on-ethereum-695d15c1dab4
- Overview of Smart Contracts (Zeppelin Solutions): https://blog.zeppelin.solutions/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05
- Smart Contract Best Practices (ConsenSys): https://consensys.github.io/smart-contract-best-practices/
- Answers to Deep Questions about Solidity (Christian Reitwiessner of The Ethereum Foundation): https://gist.github.com/chriseth/8870a7c0ee9429d92399795c54a31340
- Proxy libraries (Zeppelin Solutions): https://blog.zeppelin.solutions/proxy-libraries-in-solidity-79fbe4b970fd
- Implementation example (uPort): https://medium.com/uport/making-the-uport-smart-contracts-smarter-e1798d8c1cf9
- Library driven development (Aragon): https://blog.aragon.one/library-driven-development-in-solidity-2bebcaf88736
- Test driven development: https://github.com/ether-camp/ethereum-testing-reference
- Generic TDD overview: https://www.guru99.com/test-driven-development.html#3
- "Natural Specification Format" (The Ethereum Foundation): https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format
- Inspiration for formatting READMEs and documentation (ConsenSys): https://github.com/ConsenSys/StandardBounties
- Style guide for 0.4.19 (The Ethereum Foundation): http://solidity.readthedocs.io/en/develop/style-guide.html
- MultiSigWallet contract example (ConsenSys): https://github.com/ConsenSys/MultiSigWallet/blob/master/MultiSigWalletWithDailyLimit.sol
- Web3.js (The Ethereum Foundation): https://github.com/ethereum/wiki/wiki/JavaScript-API
- Solidity:
- Choosing between
revert()
,assert()
, andrequire()
(Maurelian of ConsenSys): https://media.consensys.net/when-to-use-revert-assert-and-require-in-solidity-61fb2c0e5a57 - Layout of Source Files (The Ethereum Foundation): http://solidity.readthedocs.io/en/latest/layout-of-source-files.html?highlight=natspec
- Choosing between
- Known attacks (ConsenSys): https://consensys.github.io/smart-contract-best-practices/known_attacks/
- General security slightly out of date (Christian Reitwiessner of The Ethereum Foundation): https://blog.ethereum.org/2016/06/10/smart-contract-security/
- Previous community mistakes (Vitalik Buterin of The Ethereum Foundation): https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/
- Life of a campaign (ConsenSys): https://medium.com/@billgleim/shaping-crowdfund-rollout-readiness-at-weifund-e79198cc4e7f
- The DAO:
- Analysis (Phil Daian of Cornell): http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/
- Call for Moratorium (Dino Mark of Smartwallet, Vlad Zamfir of The Ethereum Foundation, Emin Gün Sirer of Cornell): https://docs.google.com/document/d/10kTyCmGPhvZy94F7VWyS-dQ4lsBacR2dUgGTtV98C40/edit
- Parity:
- Multisig Bug Analysis (Lorenz Breidenbach, Phil Daian, Ari Juels, and Emin Gün Sirer all of Cornell): http://hackingdistributed.com/2017/07/22/deep-dive-parity-bug/
- Fan-fiction? Satire? Either way, I was amused (Mitch Brenner (pseudonym) from N/A): https://medium.com/@rtaylor30/how-i-snatched-your-153-037-eth-after-a-bad-tinder-date-d1d84422a50b
- General guide to smart contract attacks - audits (Merunas Grincalaitis of N/A): https://medium.com/@merunasgrincalaitis/how-to-audit-a-smart-contract-most-dangerous-attacks-in-solidity-ae402a7e7868
- Preparing for audits (ConsenSys): https://media.consensys.net/preparing-for-a-smart-contract-code-audit-83691200cb9c
- Overview of testing: https://medium.com/etherereum-salon/eth-testing-472c2f73b4c3
- Formal verification (ETH Zurich): https://securify.ch/
- Smart contract audit platform (Solidified): https://www.solidified.io/
- Privacy-centric smart contracts: https://eprint.iacr.org/2015/675.pdf