Giter Site home page Giter Site logo

letubert / gitbook_ethereum_for_newbies Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thetta/gitbook_ethereum_for_newbies

0.0 3.0 0.0 16 KB

Ethereum - Getting Started (for Newbies) article. Quick dive into the Ethereum and smart contracts

Home Page: https://thetta.gitbook.io/ethereum-getting-started-for-newbies/

gitbook_ethereum_for_newbies's Introduction

Ethereum - Getting Started for Newbies (byThetta.io microcompany tokenization platform)

Ethereum - smart contracts run on top of Ethereum Virtual Machine. Each state change is “saved” to the blockchain, but not to the memory of the single computer.

Very good list of Blockchain resources is available here (but don’t stop to read this document!) -https://a16z.com/2018/02/10/crypto-readings-resources/

Book#1 - Mastering Bitcoin: Programming the Open Blockchainbook

**Very good book that is must read for any blockchain developer. Currently Ethereum uses same crypto-consensus algorithm, just like Bitcoin does. There is no necessity to read the whole book, you can skip chapters and sections.

[https://www.amazon.com/Mastering-Bitcoin-Programming-Open-Blockchain/dp/1491954388**](https://www.amazon.com/Mastering-Bitcoin-Programming-Open-Blockchain/dp/1491954388)

Book#2 - Introducing Ethereum and Solidity

https://www.amazon.com/Introducing-Ethereum-Solidity-Foundations-Cryptocurrency/dp/1484225341/

**
**

https://www.dropbox.com/s/c0pzi0fv51ow66w/Ethereum.pdf?dl=0

Articles to read

In English

https://medium.com/blockchannel/tools-and-technologies-in-the-ethereum-ecosystem-e5b7e5060eb9

http://candidtim.github.io/ethereum/2016/03/24/ethereum-quick-start.html

http://blockgeeks.com/guides/what-is-ethereum/

Ethereum smart contracts guide is available here - https://github.com/ethereum/guide

https://medium.com/@mvmurthy/full-stack-hello-world-voting-ethereum-dapp-tutorial-part-2-30b3d335aa1f

PoS - https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ

In Russian

https://habrahabr.ru/company/alfa/blog/323070/

https://habrahabr.ru/company/microsoft/blog/323548/

https://habrahabr.ru/company/neobit/blog/324456/

Workshops

  1. https://github.com/androlo/solidity-workshop

What to do next?

  1. Research the https://www.myetherwallet.com
    - generate new wallet

    • export the wallet to JSON
    • load the JSON
    • send or receive test transaction (say, 0.00000001 ETH)
  2. Create coinbase account -very easy way to keep you crypto (but please don’t keep a lot! you can loose your money, because the service is centralized; also it can be hacked).

  3. Check how block Explorer works -http://etherscan.io/
    - see you transaction

    • check your transactions
    • switch between mainnet and testnet
  4. install geth and start it from your console

  5. install parity and start it from your console (kovan or rinkeby testnet) + connect from the browser

  6. Install Mist (Ethereum Wallet) and start syncing it with the mainnet (can take more than 100+ GB on your hdd)

    • create new account
    • check how smart contract deployment works
  7. MetaMask chrome add-on

  8. Brave web-browser

  9. DApp vs ordinary web app

  10. Infura.io

Terms

  • Miner

  • Node

  • Lightnode, different modes

  • Lightwallet

  • Blockcain sync

  • Consensus

  • PoW, PoS, (D)PoS, Raft/Paxos

  • Differences between decentralization and distributed systems

  • DHT (torrents)

  • Block, basic structures

  • MIner’s fee, rewards

  • Coinbase-tx

  • Public/private keys

  • Lightning network/Raiden

  • Segwit

  • 51% attack

  • Transaction Maleability attack

  • Sybil attack

  • Eclipse attack

  • Blockchain bloat attack

  • Sharding

  • Plasma

  • Zero-Knowledge Proofs

Questions

  1. Will for cycle (read-only iteration) eat gas?

  2. What if the method throws - will gas be eaten?

  3. What if you specified low gaslimit value?

  4. **call vs send? What can be called in thefallback functionof the contract?
    ****http://ethereum.stackexchange.com/questions/765/what-is-the-difference-between-a-transaction-and-a-call
    **
    http://ethereum.stackexchange.com/questions/6470/send-vs-call-differences-and-when-to-use-and-when-not-to-use

  5. **How to send tx in the Parity, if it stuck?
    **https://kovan.etherscan.io/address/0xdf8845a26e1db43236e591a863289ad5c1fcda5a

  6. **tx.originvsmsg.sender?
    **http://ethereum.stackexchange.com/questions/1891/whats-the-difference-between-msg-sender-and-tx-origin

  7. **mappingsandarrays of mappings?
    **http://ethereum.stackexchange.com/questions/2718/is-it-possible-to-have-mappings-inside-mappings[**

    **](http://ethereum.stackexchange.com/questions/1891/whats-the-difference-between-msg-sender-and-tx-origin)

  8. Why new solc version requires ‘payable’ modifier to be specified? Even if no money-consuming operations occur inside the fallback.

  9. Contract address and account address have different formats?

  10. **How to startprivatenode?
    **https://blockgeeks.com/how-to-setup-an-ethereum-private-node/

  11. **PoS vs PoW
    ****https://blockgeeks.com/guides/proof-of-work-vs-proof-of-stake/
    **
    https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ

  12. What is PoA (Kovan)?

  13. Is Byzantine generals problem solved?

  14. What happens if you send ETH from the wallet that is not synced?

  15. **How to execute arbitrary binary code? Is it even possible?
    **https://github.com/ChainCloud/jibrel-contracts/blob/master/contracts/feature/bytecode/BytecodeExecutor.sol

  16. **How to get string hash?
    **https://github.com/ChainCloud/jibrel-contracts/blob/master/contracts/feature/assetid/AssetID.sol

  17. **How to pass arrays/strings between contracts?
    **https://gist.github.com/AnthonyAkentiev/68c90721d062b7b21879af7b74b1e95e

  18. **pure? view? staticcall?
    **https://medium.com/blockchannel/state-specifiers-and-staticcall-d50d5b2e4920

  19. **delegatecall
    **https://ethereum.stackexchange.com/questions/3667/difference-between-call-callcode-and-delegatecall

  20. **memory vs storage?
    **https://ethereum.stackexchange.com/questions/1701/what-does-the-keyword-memory-do-exactly

  21. Libraries -https://vomtom.at/upgrade-smart-contracts-on-chain/

  22. NatSpec -https://ethereum.gitbooks.io/frontier-guide/content/natspec.html

  23. **How to check if address is contract?
    **https://github.com/ethereum/yellowpaper/issues/320

Smart contract examples

  1. http://www.giveth.io

  2. Cloneable -https://github.com/Giveth/minime

  3. Vault -https://github.com/Giveth/vaultcontract

  4. Token-curated registry -https://medium.com/@simondlr/city-walls-bo-taoshi-exploring-the-power-of-token-curated-registries-588f208c17d5

  5. **LN Payment Channels
    **https://medium.com/@matthewdif/ethereum-payment-channel-in-50-lines-of-code-a94fad2704bc

Awesome smart contract style

  1. https://github.com/ChainCloud/angel-contracts

  2. https://github.com/aragon/

  3. https://github.com/ChainCloud/jibrel-contracts/tree/master/contracts**
    **

Lightning Network

  1. https://medium.com/@matthewdif/ethereum-payment-channel-in-50-lines-of-code-a94fad2704bc

  2. https://funfair.io/approach-turing-complete-state-channels-part-1/

  3. https://medium.com/@raiden_network/the-raiden-network-token-rdn-launch-is-set-to-october-18th-5e9a2ffd7960

  4. https://github.com/raiden-network/microraiden

Links

  1. Trusted Relay Networks (By Consensys) -https://blog.gridplus.io/introducing-trusted-relay-networks-6c168f72a6f6

Notable ERCs

  1. ERC721 (non-fungible token, CryptoKitties) -https://github.com/ethereum/EIPs/issues/721

  2. ERC223 (tokenFallback - receiving tokens callback) -https://github.com/ethereum/EIPs/issues/223

Vulnerabilities

  1. **Reentrancy attack
    **https://medium.com/@gus_tavo_guim/reentrancy-attack-on-smart-contracts-how-to-identify-the-exploitable-and-an-example-of-an-attack-4470a2d8dfe4

  2. https://github.com/ChainCloud/diligence-takehome/tree/attack

Upgradeability

  1. https://blog.zeppelin.solutions/proxy-libraries-in-solidity-79fbe4b970fd
  2. http://swende.se/blog/EVM-Assembly-trick.html
  3. https://gist.github.com/Arachnid/4ca9da48d51e23e5cfe0f0e14dd6318f
  4. https://www.reddit.com/r/ethereum/comments/4kt1zp/mad_blockchain_science_a_100_upgradeable_contract/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.