Code Monkey home page Code Monkey logo

homestead-guide's Introduction

Homestead-Guide

License Gitter

DEPRECATION NOTICE

The Ethereum Homestead Guide is the reference documentation accompanying the Homestead release of the Ethereum project. The information in this repository is largely out of date. Relevant material has been migrated to https://ethereum.org. and this repository is due to be archived shortly. For current information on Ethereum, please visit https://ethereum.org instead. This repository is for historical reference only!

HOW YOU CAN HELP

Looking to contribute to Ethereum documentation? Check out the ethereum.org repo: https://github.com/ethereum/ethereum-org-website

homestead-guide's People

Contributors

5chdn avatar anfedorov avatar azulmarino avatar bdinn1 avatar bobsummerwill avatar c0d3inj3ct avatar chfast avatar chriseth avatar dylanjw avatar ethers avatar gabx avatar gmkung avatar hughlang avatar jamesray1 avatar jjmstark avatar jmahhh avatar jmcook1186 avatar johndoe389 avatar klmoney avatar makoto avatar midnightlightning avatar pipermerriam avatar pirapira avatar programonauta avatar rfikki avatar s1r-lanzelot avatar sampullman avatar souptacular avatar yann300 avatar zelig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homestead-guide's Issues

Instructions for setting up a testnet are deprecated

The guide to setting up a local private testnet using Geth does not work on homestead (Genesis flag is deprecated, javascript console has changed). Here

Probably the instructions using eth are wrong as well, but I don't use Eth and haven't checked.

Note: I've actually already started fixing the geth section, hope that's ok. Should have a pull request for you later today

mining - ethminer "no gpu device with sufficient memory was found"

Can't get ethminer started with GPU mining.

Running geth node
loading ethminer -g
gets this error message: "no gpu device with sufficient memory was found. Can't GPU mine. Remove the -G argument"

I have a AMD Firepro w7100. It's a powerful graphics card with lots of memory

FAQ

  • organise into major topics ?
  • format properly
  • cross references
  • check reddit, forum, stackexchange for frequently asked qs and add them

keep adding question answers and external links

Installing on Ubuntu 14.04 from PPA is missing packages

After adding the repositories based on the current homestead documentation and trying to install cpp-ethereum it can't find the packages.

$ sudo apt-get install cpp-ethereum
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package cpp-ethereum

After adding the ethereum-dev PPA it does find the packages, but Ubuntu won't install them.

$ sudo apt-get install cpp-ethereum
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cpp-ethereum : Depends: eth but it is not going to be installed
                Depends: ethminer but it is not going to be installed
                Depends: ethkey but it is not going to be installed
                Depends: ethvm but it is not going to be installed
                Depends: alethzero but it is not going to be installed
                Depends: alethone but it is not going to be installed
                Depends: mix but it is not going to be installed
                Depends: solc but it is not going to be installed
                Depends: lllc but it is not going to be installed
                Depends: rlp but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

After manually specifying dependencies it comes down to libcryptopp-dev and libjson-rpc-cpp-dev that are missing. I've googled but haven't been able to find anything useful about how to install them.

Contents of Backup/Import page (in Using Ethereum: The Basics)

Would appreciate some clarification as to contents of this page.

What else goes into this page that is currently titled “Backup/Import Accounts”?

Homestead RTD UX

My experience with the Frontier Guide was very positive and learning Frontier with it was a breeze .

Why I prefer Gitbook:

  • Clean UI (no distractions)
  • Side-pane can be hidden (no distractions)
  • Side-pane can show full outline, (fly up and down all topics)

Why I DO NOT prefer RTD

  • Solid color side-pane is a distraction
  • Inability to hide side-pane
  • Inability to expand full outline

Could someone clarify the reasoning behind using RTD versus Gitbook?

Mismatch in ethdocs and git repo

Problem

The documentation on ethdocs do not match the one given in the repository.

Reproducing the problem

  • Visit Docs » Ethereum Clients » Parity)
  • The website and github link to older version of ethcore.
  • Click Edit on GitHub given in top right corner.
  • You will be redirected to the github file for that page. But the file on github is already up to date.

I'd Like to Submit My Stackexchange Documentation on Mist Account / Multisig Setup

I'd like to contribute my stackexchange walkthrough on setting up Mist with accounts and a multisig wallet, into the homestead documentation if it meets your guidelines. Here is the post:

http://ethereum.stackexchange.com/questions/1239/what-is-the-recommended-way-to-safely-store-ether/1430#1430

Let me know if you need me to do anything to get this documentation added, if it does meet your guidelines? I can make free time to assist in any way.

glossary

  • check for completeness
  • provide definitions using internal links when possible
  • alphabetical ordering
  • remove obsolete terminology section - just mark terms as OBSOLETE

No such method admin.getContractInfo

Hi there,

When reading section Contract metadata, I see the following code does NOT work

// get the contract info for contract address to do manual verification
var info = admin.getContractInfo(address) // lookup, fetch, decode
var source = info.source;
var abiDef = info.abiDefinition

My system info:

$ geth version
Geth
Version: 1.5.9-stable
Git Commit: a07539fb88db7231d18db918ed7a6a4e32f97450
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.7.3
OS: linux

admin.getContactInfo already gets deprecated. Please have a look at: ethereum/webthree-umbrella#99

Should I make a PR against this problem?

AMD R9 390: ethminer no gpu device with sufficient memory was found

Hey guys,
I'm facing some issues with my ethminer which I am unable to solve.
I have an AMD R9 390 with 8GB of VRAM (should be enough for mining).
However ethminer tells me that there's no GPU with sufficient memory available.
I tried adding --opencl-platform 1 to my command line but that didn't solve the problem.
My internal GPU is deactivated as well.
Any hints on how to solve the problem and get ethminer running?

Thanks in advance
Jonny125

ePub version?

Hi,

Is it possible to build ePub version for e-reader?

Thanks.

Document for deploying a contract needs to be updated

When I run

curl --data '{"jsonrpc":"2.0","method": "eth_compileSolidity", "params": ["contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } }"], "id": 4}' localhost:8000

I get

{"jsonrpc":"2.0","id":4,"error":{"code":-32601,"message":"The method eth_compileSolidity does not exist/is not available"}}

The compileSolidity has been removed. Please update all the documentation to be current.

what is ethereum

add to https://github.com/ethereum/homestead-guide/blob/master/source/introduction/what-is-ethereum.rst

  • add cross references
  • incorporate some insightful descriptions using https://www.reddit.com/r/ethereum/comments/44b69e/i_dont_understand_the_technology/ and all the threads
  • add resources section with links to videos and intro articles , infographic and relevant reddit threads
  • maybe consider: leave out the foundation section, move it as part of a separate 'who is behind ethereum?' section
  • mix instead of alethzereo but better just leave out and refer to IDE section or dev chapter in general

Documentation Structure Changes

This issue will track discussion on what the state of the documents should be. @zelig has made some suggestions that I will highlight below for discussion. It appears his structuring of the guide is based in part on the Frontier guide, which had an awesome layout. We may need to work through the complications of keeping that type of vertical, topical structuring.

High Level:

  • Reinstate Frontier Guide principle of vertical, topical structuring involving the following chapters: intro, clients, account management, network, mining, contracts and transactions.
  • Intro would provide a horizaontal view of the docs: basic usage, developing under Ethereum. This would list paths someone could take while reading like "noob track" and "dapp developer track"
  • Installing clients would go under Ethereum clients, which would make "Why multiple clients?" a proper section
  • Merge dapp development and higher level languages and IDE +Contract development tools under contracts and transactions like in frontier guide, along with blockchain explorers and base layer services
  • merge test networks under network
  • Still unsure if the current basic-usage/ether should be a separate chapter. Likely it would.
  • Ecosystem/Community and Foundation will go into intro
  • What is ethereum recap would recap ecosystem chapter, but only as pointers/crosslinks to the verticals of the guide
  • Web3 Vision section would introduce the notion of dapps, whisper, and swarm
  • The GUIs would be listed within the ethereum clients chapter and referred to from web3 dapps section as well. (need clarity on what this means? Like Ethereum Wallet/Mist?)

Current Guide Organization

Introduction

  •  What is Ethereum?
    
  •  The Homestead Release
    
  •  History of Ethereum
    
  •  Glossary
    
  •  Contributors
    

Ethereum Ecosystem

  •  The Ethereum Foundation
    
  •  Community
    
  •  Infrastructure
    
  •  Dapps
    

Using Ethereum: The Basics

  •  Installing a Client
    
  •  Connecting to the Network
    
  •  Account Management
    
  •  Ether
    
  •  Mining
    

Contracts and Transactions

  •  Account Types, Gas, and Transactions
    
  •  Contracts
    
  •  Accessing Contracts and Transactions
    

Developing on Ethereum

  •  Developer Tools
    
  •  Test Networks
    
  •  Setting up a local private testnet
    
  •  Web3 Base Layer Services
    

Ethereum Clients

  •  Why are there multiple Ethereum clients?
    
  •  Meet the clients
    

Frequently Asked Questions

What the guide organization would look like under Vik's proposal

Introduction

  •  What is Ethereum?
    
  •  The Homestead Release
    
  •  History of Ethereum
    
  •  The Ethereum Foundation
    
  •  Web3 Vision
    
  •  Community
    
  •  Glossary
    
  •  Contributors
    

Clients (formerly "Ethereum Clients")

  •  Why are there multiple Ethereum clients?
    
  •  Meet the clients
    
  •  Installing a Client
    

Account Management

  •  Account Management (will need to be renamed)
    

Network

  •  Connecting to the Network
    
  •  Test Networks
    

Mining

  •  Mining (will need to be renamed)
    

Contracts and Transactions

  •  Account Types, Gas, and Transactions (will need to be renamed maybe)
    
  •  Contracts (will need to be renamed)
    
  •  Accessing Contracts and Transactions (will need to be renamed)
    
  •  Developer Tools [will include blockchain explorers?]
    
  •  Web3 Base Layer Services
    

Frequently Asked Questions

What is left to organize. Crossed out means it is no longer part of the structure.
Ethereum Ecosystem
Infrastructure (Needs to be moved)
Dapps (Needs to be merged with Web3 vision page likely)
Using Ethereum: The Basics
Ether (needs to be moved)
Developing on Ethereum

Please discuss and ideate on if/how we should restructure the guide.

default maxpeers and trusted-nodes.json

I have two computers running Geth

On both computers I have a static-nodes.json and a trusted-nodes.json file in the datadir and they contain one entry: the other node...

I am under the impression that placing a node into trusted-nodes.json would not count against the maxpeers? However, running Geth with default maxpeers (not specifying --maxpeers, which defaults to 25) results in the systems not connecting to each other when net.peerCount = 25 on one of the nodes.

If I were to restart the node with a peer count of 25 they'll connect to each other just fine. So it appears to me that the trusted-nodes.json is being ignored when default maxpeers is reached?

One node is v1.6.1-stable-021c3c28 and the other is v1.6.0-stable-facc47cb

I can reproduce at any time as one of my nodes is pretty much "public" over 30303 and always has 25 nodes, while the other does not...

Some thoughts on the structure/outline of the guide

Some thoughts on the structure/outline of the guide especially relating to Accounts/Wallets

There is no mention of wallet apps (including independently-developed wallet apps) in the Ecosystem section. Should we list them: Mist Wallet, MyEtherWallet, EthAddress.org etc. (perhaps with disclaimer about endorsement) https://www.reddit.com/r/ethereum/comments/4543cu/when_can_we_expect_a_guiwallet/

After “Installing a Client” (in Using Ethereum: The Basics), should we put in the section from Frontier “1.2 Backup & Restore”. This would describe the node’s data directory including geth upgradedb, geth export etc.Perhaps call this section “Data Directory Management”. Perhaps a description of what is in the various folders in the data directory, including the keystore. Only mention/describe keystore here, no details about how to backup/restore keyfiles which will be covered later in Account Management.

(“Creating an Account” goes into Account Management.)
Should Account Management be confined to just dealing with Accounts (EOA). That is, with defining an Account (already done in Intro?), keys, keyfiles, Creating Accounts. Backup/Restore of Accounts.
Essentially, here we describe EOAs bearing in mind their total, bigger role within the protocol, and not so much as basic wallets.

A separate section on Wallets, perhaps titled “Wallet Management”. Introduce concept of “wallet”. Wallets can be Accounts, Contract-based Wallets, Presale Wallets, Paper Wallets, Hardware Wallets, etc. Here we focus on the “stores of ether” (and other crypto tokens).
Within the Wallets Management section:
Backup/Restore/Import of wallets:
Here we describe backup/restore of contract-based wallets. And cross-reference to the Account backup section in Account Management.
This will include geth account import, geth wallet import.
(Geth account import is here rather than in Account Management because imported private keys will most likely be in the context of importing a wallet specifically (like a paper wallet). But could be in Account Management.)

So I am thinking of something like this:

Installing a Client

Data Directory Management

(Frontier Guide’s “Backup & Restore” essentially)

  • Default locations of Data Directories for different clients
  • What’s in the Data Directory folders
  • Upgrades
  • Cleanup
  • Blockchain Import/Export

Connecting to the Network

Account Management

  • What are Accounts? (Externally Owned Accounts)
  • Keys, Keyfiles
  • Creating an Account (Using Console, EthKey, Mist, RPC)
  • Backup/Restore of Accounts

Wallet Management

  • What is a “Wallet”? (Accounts, Contract-based Wallets, Presale Wallets, Paper Wallets, Hardware Wallets)
  • Backup/Restore of Wallets (Contract-based Wallets)
  • Geth Account Import
  • Geth Wallet Import

Ether

Note: Should it be keys, key files, or keyfiles; all of which are used in Frontier in the same section. While private keys and public keys are keys, the thing in the keystore folder is a key file or keyfile? Just looking for consistency.

ethminer lists eGPU but doesn't use it

I'm new to this, so excuse my ignorance, but whatever I do, ethminer only seems to find my internal graphics card, not the external one.

mintho$ ethminer --list-devices

[OPENCL]:
Listing OpenCL devices.
FORMAT: [deviceID] deviceName
[0] Intel(R) Iris(TM) Graphics 550
	CL_DEVICE_TYPE: GPU
	CL_DEVICE_GLOBAL_MEM_SIZE: 1610612736
	CL_DEVICE_MAX_MEM_ALLOC_SIZE: 402653184
	CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
[1] GeForce GTX 1080 Ti
	CL_DEVICE_TYPE: GPU
	CL_DEVICE_GLOBAL_MEM_SIZE: 11811160064
	CL_DEVICE_MAX_MEM_ALLOC_SIZE: 2952790016
	CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024

mintho$ ethminer -G -F http://my_pool_address --disable-submit-hashrate --opencl-device 1

[OPENCL]:Found suitable OpenCL device [Intel(R) Iris(TM) Graphics 550] with 1610612736 bytes of GPU memory

As you can see, when ethminer lists the available devices, it does see my eGPU, but when I try to start it with that same device in the argument, it again only finds the integrated graphics chip.

I've read that setting opencl-platform to 1 helps, but in that case, it doesn't find any GPU at all:

mintho$ ethminer -G -F http://my_pool_address --disable-submit-hashrate --opencl-device 1 --opencl-platform 1

No GPU device with sufficient memory was found. Can't GPU mine. Remove the -G argument

Any help would be very welcome indeed.

Ethereum Miners cant detect gpu

So ive been trying to get into ethereum mining and ive followed several of the guides online done everything correctly but for some reason neither claymores dual miner nor ethminer can detect my gpu.
Now i don't have a discrete gpu but an apu and i know most would say im not gonna get anything out of it but its just to try it out before i invest into actual gpu's. Anyway when i use the list devices command in ethminer i dont get anything it doesnt find anything. I would just like to know if an apu is even compatible with ethereum miners? I know it works with bitcoin cause ive tryed it.

I'm failing to import a testnet blockchain binary file (Bad block #1)

My first try was:

geth --testnet import ~testnetblockchain.bin

And geth gave me back:

I0811 23:59:37.301085 ethdb/database.go:82] Alloted 128MB cache and 1024 file handles to C:\Users\MultiEBD\AppData\Roaming\Ethereum\testnet\chaindata
I0811 23:59:37.742111 core/headerchain.go:94] WARNING: Wrote default ethereum genesis block
I0811 23:59:37.742111 core/blockchain.go:206] Last header: #0 [d4e56740.] TD=17179869184
I0811 23:59:37.742111 core/blockchain.go:207] Last block: #0 [d4e56740.] TD=17179869184
I0811 23:59:37.742111 core/blockchain.go:208] Fast block: #0 [d4e56740.] TD=17179869184
I0811 23:59:37.742111 cmd/utils/cmd.go:123] Importing blockchain H:\RESPALDOS\CRYPTO\Ethereum\test11082016.bin
E0811 23:59:38.888176 core/blockchain.go:1128] Bad block #1 (0xad47413137a753b2061ad9b484bf7b0fc061f654b951b562218e9f66505be6ce)
E0811 23:59:38.888176 core/blockchain.go:1129] Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303
I0811 23:59:38.888176 ethdb/database.go:169] closed db:C:\Users\MultiEBD\AppData\Roaming\Ethereum\testnet\chaindata
Fatal: Import error: invalid block 2500: Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303
Fatal: Import error: invalid block 2500: Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303

Now, 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303 is the right hash of the MORDEN genesis block. So I thought that I just needed the genesis.json

My second try was:

geth --testnet init genesis.json

And geth gave me: successfully wrote genesis block and/or chain rule set: c31c07282c5f803da583b8b65f3aa0b5cce411f3ffa6ae11c5e0adb3e057ef4a

then I try again:

geth --testnet import ~testnetblockchain.bin

And geth gave me back:

I0811 23:29:00.224011 ethdb/database.go:82] Alloted 128MB cache and 1024 file handles to C:\Users\MultiEBD\AppData\Roaming\Ethereum\testnet\chaindata
I0811 23:29:00.605032 core/blockchain.go:206] Last header: #0 [c31c0728.] TD=131072
I0811 23:29:00.605032 core/blockchain.go:207] Last block: #0 [c31c0728.] TD=131072
I0811 23:29:00.605032 core/blockchain.go:208] Fast block: #0 [c31c0728.] TD=131072
I0811 23:29:00.605032 cmd/utils/cmd.go:123] Importing blockchain H:\RESPALDOS\CRYPTO\Ethereum\test11082016.bin
E0811 23:29:01.764099 core/blockchain.go:1128] Bad block #1 (0xad47413137a753b2061ad9b484bf7b0fc061f654b951b562218e9f66505be6ce)
E0811 23:29:01.796101 core/blockchain.go:1129] Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303
I0811 23:29:01.845103 ethdb/database.go:169] closed db:C:\Users\MultiEBD\AppData\Roaming\Ethereum\testnet\chaindata
Fatal: Import error: invalid block 2500: Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303
Fatal: Import error: invalid block 2500: Block's parent unknown 0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303

And I don't know what I'm doing wrong.
May be I need the right MORDEN genesis.json file yet.
Or may be that I need to use some geth command to tell it not to write the default genesis block in the chaindata, but import it from the testnetblockchain file I have.

Any suggestion?

Thanks =)

Proposal: Add Solium to the list of developer tools

I've been working on a Linter for Solidity for about a month and recently made a stable release.
Its called Solium, it strictly follows the Official Style guide from the Solidity Docs and its usage is similar to that of eslint.
If you'd like to give it a try, you can install it via npm

npm install -g solium

and visit the repository for more information.

I'd like to add its name under the Developer tools category. I think it can greatly improve code quality of Dapps. Please let me know if you're interested.

Thanks

Please consinder enabling word wrap for code blocks in .epub build

Here's photo of how .epub guide looks on ebook reader (sorry for poor quality photo, phone failed to acquire focus):
ethereum_guide

In order to read full code lines I have to reduce font size drastically, and than increase to keep reading text.

I've red some technical ebooks, and yes, wrapped code does look extremely ugly, but at least is legible...

Fix the Client Implementation Links.

@Souptacular

Please fix the client implementation links in the documentation here:

https://github.com/ethereum/homestead-guide/blob/master/source/ethereum-ecosystem/client-implementations.rst

The link for the Golang client is incorrect at present. It is pointing to: http://ethereum.github.io/go-ethereum/) instead of http://ethereum.github.io/go-ethereum/

Notice the extra parenthesis at the end? This would lead to a 404 Not Found page. Please update it.

Thanks.

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.