CBDE Official Exam Prep Guide V1.1
User Manual:
Open the PDF directly: View PDF
Page Count: 53
- CBDE Exam Prep Guide Cover June 7 2018
- Ethereum Exam Prep Guide
- Introduction
- What are “DApps”?
- Ethereum and EVM Basics
- Hashing
- Ethereum Denominations
- Most widely used are Wei, Gwei, Finney and Ether. With the tool https://etherconverter.online/ you can easily convert different units.
- Private Keys, Public Keys and Accounts
- Proof of Work (PoW) vs. Proof of Stake (PoS) vs. Proof of Authority (PoA)
- Externally owned Accounts (EOA) vs. Smart Contracts
- Transactions
- Chapter 1 Quiz
- 1. Which is the right order for Denominations?
- 2. What is the nonce-field in a transaction?
- 3. Select which statement is true about the EVM
- 4. DApps are…
- 5. To get most out of the blockchain it is best…
- 6. What means that a Hashing Algorithm is deterministic?
- 7. What’s the correct scientific notation?
- 8. What Are Private Keys for?
- 9. Public Keys vs. Private Keys, select which is true:
- 10. Proof of Work (PoW) vs. Proof of Stake.
- 11. Externally Owned Accounts
- 12. Smart Contracts
- 13. Transactions
- 14. Sending one Ether
- 15. Hashing
- 16. PoS
- 17. EoA
- Solution for the Quiz:
- Ethereum Protocol
- Communication of Ethereum Nodes with clients
- Blockchain Networks
- Blockchain Nodes and Mode of Operation
- Private, Consortium and Public Networks
- How consensus works
- A block on the blockchain
- Functions of a Miner
- Chapter 2 Quiz
- 1. What are Ethereum Nodes?
- 2. To communicate with an Ethereum node via JavaScript
- 3. It’s possible to access the blockchain via an Ethereum Node
- 4. A Private Network is
- 5. For Rapid Development Cycles it’s good
- 6. Go-Ethereum vs. Ganache
- 7. Topic: Block Timestamp
- 8. Block Difficulty
- 9. Ethereum Nodes
- 10. When a new block is mined
- 11. A Blockchain Node
- 12. On a consortium network
- 13. The JSON-RPC Protocol
- 14. GETH
- 15. Consensus is reached
- Chapter 2 Quiz Solution
- Different Programming Languages
- What exactly is a “smart contract” technically?
- EVM Assembly and Opcodes
- Gas and Gas Requirements
- Gas-Costs Economics on the Blockchain
- Data Storage in a Merkle Patricia Trie
- Privacy on the Ethereum Blockchain
- Chapter 3 Quiz
- 1. Smart Contracts can be written in
- 2. Solidity gets compiled to
- 3. Gas is used
- 4. To store almost all data in the Ethereum Blockchain
- 5. You interact with a smart contract and see a gas usage of 50,000 gas with a gas cost of 15Gwei, how much Ether would you have to pay to the miner?
- 6. Checking the balance of an address inside a loop of a smart contract constantly
- 7. Gas costs accrue on
- 8. EVM assembly
- Chapter 3 Quiz Solution
- Foreword
- Layout of a Solidity File
- Comments in Solidity
- Importing of other files
- Important aspects of Value-Types
- Strings in Solidity
- Arrays, Structs and Mappings
- Functions and Variable Visibility
- Function Modifiers
- View/Pure Functions
- Fallback Functions
- Global objects: msg. and tx.
- Loops
- Events
- Official Style Guide
- The Difference between address.transfer(), address.send(), address.call.value()(), address.delegatecall() and address.callcode().
- Chapter 4 Quiz
- 1. Solidity files…
- 2. Files can be…
- 3. Importing from GitHub…
- 4. Single line comments in Solidity are working with
- 5. Multi-Line Comments in Solidity work with
- 6. The following are value types in Solidity
- 7. To compare a String in Solidity you use
- 8. If we divide two integers: 5/2, the result is
- 9. A Struct is a great way
- 10. A Mapping consists of keys and value.
- 11. To Iterate through a mapping you
- 12. Function and Variable Visibility:
- 13. View and Pure Functions:
- 14. View and Pure Functions
- 15. The Fallback function
- 16. To get the address that initiated the transaction you need to use
- 17. If a User calls contract A and that calls Contract B, then msg.sender in Contract B will contain the address of
- 18. Loops in Solidity
- 19. Events
- 20. According to the official Style Guide
- 21. A version pragma is a great way
- 22. Variables of the type address store
- 23. Address.send()
- 24. Address.call.value()
- 25. Address.send() and address.transfer()
- 26. When defining a new datatype
- Chapter 4 Quiz Solution
- What is an ERC?
- What is an EIP?
- What exactly is the ERC20 Token Contract?
- What exactly is the ERC721 Token Contract?
- Chapter 5 Quiz
- 1. What’s the difference between ERC and EIP?
- 2. What is the difference between ERC20 and ERC721 Tokens in simple terms?
- 3. In order to implement an ERC20 token contract, you’d need at least to implement the following functions and events in order to fulfill the interface requirements:
- 4. Why is it important to follow the same Interfaces?
- Chapter 5 Quiz Solution
- Inheritance in Solidity
- What exactly is Web3.js?
- What is the MetaData and the ABI Array?
- Difference between address.send and address.transfer
- Exceptions with Solidity
- Why avoid .call.value()()?
- Low-Level Assembly and Solidity
- Chapter 6 Quiz
- 1. If contract MyContractA is derived from Contract MyContractB, then this would be the right syntax:
- 2. Inhertiance is useful, because a contract that is derived from another contract can make use of:
- 3. Finish the sentence: The Library Web3.js is …
- 4. When solidity is compiled then also Metadata is generated
- 5. The difference between address.send() and address.transfer() is
- 6. All low-level functions on the address, so address.send(), address.call.value()(), address.callcode and address.delegatecall
- 7. When using assert to check invariants and it evaluates to false
- 8. When using require to check input parameters and it evaluates to false
- 9. To send ether to a contract without a function call:
- 10. Using selfdestruct(beneficiary) with the beneficiary being a contract without a payable fallback function:
- 11. If you need more fine-grained functionality than solidity offers out of the box
- 12. Address.Call vs. Address.Delegatecall:
- 13. In Solidity it’s not possible to use inheritance from multiple sources
- 14. Assert is used
- 15. Require is used
- Chapter 6 Quiz Solution
- What is truffle?
- How does truffle work?
- Truffle Box
- How to write unit tests in truffle?
- Chapter 7 Quiz
- 1. Truffle:
- 2. Unit-Testing on a local chain is important, because it helps you to
- 3. With truffle it’s easy to write clean-room unit-tests
- 4. With the truffle config file you can manage
- 5. Truffle boxes are a great way
- 6. Truffle has an integrated in-memory blockchain which makes unit-testing very easy
- 7. Using truffle-contract over Web3.js
- Chapter 7 Quiz Solution
- Security Best Practices
- Why Unit Testing?
- Contract Development Workflow
- Upgrades and Bugs in Smart Contracts and the Ecosystem
- Interaction with Unknown Sources
- Forcibly send money to smart contracts
- Randomness on the blockchain
- OpenZeppelin and Libraries
- Bug-Bounty Programs
- Chapter 8 Quiz
- 1. Why is Unit-Testing so important?
- 2. If you are starting a new ERC20 token
- 3. To generate a random number
- 4. When you do external calls to other smart contracts
- 5. When you are programming a game like poker of battleships where you need to hide opponents values is
- 6. When considering smart contracts and the blockchain it’s good
- 7. When a smart contract pays out money
- 8. To develop smart contracts:
- 9. To avoid issues during Ethereum platform upgrades
- 10. Integrating the community into your testing
- 11. Having a bug-bounty program early on
- Chapter 8 Quiz Solution