👮
Contract Cops
  • Mastering Ethereum Book
    • What is ethereum?
    • Tokens
    • Oracles
    • Decenralized Applications(DApps)
    • The Ethereum virtual machine
    • Ethereum basics
    • Ethereum clients
    • Cryptography
    • Wallets
    • Transactions
    • Chapter 7 - Smart Contracts & Solidity
    • Side Notes
      • Tokens
      • Smart Contracts and Solidity
  • Cryptography
    • Ethereum Cryptography - Cheatsheet
    • Assymetric vs symmetric cryptography
    • ECDSA vs RSA
    • Elliptic curves and ECDSA
    • Sha-256 Example
    • Sha-256
    • What are the different steps in SHA-256?
  • Ethereum Blocks
    • Block Headers
  • Learning Solidity
    • Storage vs memory
    • Upgradeable contracts
      • Proxy pattern in smart contracts
  • PoS
    • Proof of stake
  • PoW
    • PoW
  • Tokens
    • ERC-1155
    • ERC20
  • Cryptonomics
    • Automated market makers
    • Collateral Tokens
    • Collateralized Stablecoin
    • Fiat currency
    • Liquidity pool
    • Open Position: Meaning and Risk in Trading
    • Slippage
    • Spot price
  • Common Attack Vectors
    • Checking access control
    • Access control issues on critical functions
    • Account Existence Check for low level calls
    • Account Existence Check
    • Common attacks with contract/EOA addresses
    • Arithmetic under/overflow
    • Assert Attack
    • Assert require revert
    • Assert Violation
    • Bad Interface DOS
    • Bad pragma and compiler
    • Block Timestamp Manipulation
    • Bypassing contract check
    • Code With No Effects
    • Code size check vulnerability
    • Constructors with Care
    • Default Visibilities
    • Delegatecall
    • Delegatecall
    • Denial of Service (DoS)
    • DoS with block gas limit
    • Entropy Illusion
    • External contract referencing
    • Flash Loan Attack
    • Floating Point and Precision
    • Function selector abuse
    • Function selector abuse
    • Smart contract gas griefing
    • Hash collision parameters
    • Hash Collisions With Multiple Variable Length Arguments
    • Imprecise arithmetic
    • Improper Array Deletion
    • Incorrect array deletion
    • Incorrect interface
    • Insufficient Gas Griefing
    • Loop through long arrays
    • Message call with hardcoded gas amount
    • Not enough gas for ether transfer
    • Precision Loss in Calculations
    • Oracle Manipulation
    • Public Burn Function
    • Read-only reentrancy
    • Race Conditions/Front Running
    • Reentrancy Attacks
    • Reentrancy
    • Requirement Violation
    • Right-To-Left-Override control character (U+202E)
    • Shadowing State Variables
    • Short Address / Parameter attack
    • Signature Malleability
    • Signature Replay
    • Transaction Order Dependence
    • Tx.Origin Authentication
    • Unchecked CALL Return Values
    • Unexpected ether
    • Uninitialized Storage Pointers
    • Unsafe Ownership Transfer
  • EIP's
    • EIP155
    • EIP55
  • PoW
    • Ethash
    • Scrypt - RFC 7914
  • Questions for self evaluation
    • Questions 23/04/2023 (Nr: 84)
    • Usability guide for questions
  • Frequently asked questions
    • What is the difference between transaction and message?
    • What is the use of a interface or function without implementation?
  • UsefulResources
Powered by GitBook
On this page
  1. Mastering Ethereum Book

Ethereum clients

PreviousEthereum basicsNextCryptography

Last updated 2 years ago

Ethereum client is a software application that implements the ethereum specification and communicates with other clients with the peer-to-peer network, mentioned in Chapter 2.

Clients written in different languages can work together if they all follow the same set of rules and reference specifications.

The most common implementations of Ethereum protocol are

• Parity, written in Rust • Geth, written in Go • cpp-ethereum, written in C++ • pyethereum, written in Python • Mantis, written in Scala • Harmony, written in Java

The most popular ones are Parity and Geth.

In order to run a node, a copy of the entire blockchain must be downloaded. Currently, the blockchain data is around 800-1000 GB and is rapidly increasing every day.

Local blockchain simulation

Instead of getting the full-sized blockchain data, testnets can be used. The issue is, however, that real money can't be used. Furthermore, not all problems that may occur in the real blockchain can be tested (security i.e).

An alternative to this is to launch a single-instance private blockchain.

Ganache (testrpc) is one of the most popular blockchain simulations

Advantages of Ganache

  • You mine the first block

  • No other users except you

  • No other contracts except the ones you deploy

  • Almost no data required

Disadvantages

  • No other users - meaning no competition for mining transactions

  • Everything must be deployed yourself, including existing libraries that may occur on a public blockchain

In order to not have to sync with the public blockchain, an alternative is using <b>a remote ethereum client</b>

Remote ethereum clients usually provide the following:

• Manage private keys and Ethereum addresses in a wallet. • Create, sign, and broadcast transactions. • Interact with smart contracts, using the data payload. • Browse and interact with DApps. • Offer links to external services such as block explorers. • Convert ether units and retrieve exchange rates from external sources. • Inject a web3 instance into the web browser as a JavaScript object. • Use a web3 instance provided/injected into the browser by another client. • Access RPC services on a local or remote Ethereum node.

1678311010986