Giter VIP home page Giter VIP logo

ethereum / go-ethereum Goto Github PK

View Code? Open in Web Editor NEW
46.2K 2.2K 19.4K 209.93 MB

Go implementation of the Ethereum protocol

Home Page: https://geth.ethereum.org

License: GNU Lesser General Public License v3.0

Go 89.21% Java 0.24% Shell 0.25% C 5.37% Makefile 0.07% M4 0.21% JavaScript 3.54% Assembly 0.51% NSIS 0.18% HTML 0.01% Python 0.09% Dockerfile 0.01% Solidity 0.08% Sage 0.24%
go blockchain ethereum p2p geth

go-ethereum's Introduction

Go Ethereum

Golang execution layer implementation of the Ethereum protocol.

API Reference Go Report Card Travis Discord

Automated builds are available for stable releases and the unstable master branch. Binary archives are published at https://geth.ethereum.org/downloads/.

Building the source

For prerequisites and detailed build instructions please read the Installation Instructions.

Building geth requires both a Go (version 1.21 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run

make geth

or, to build the full suite of utilities:

make all

Executables

The go-ethereum project comes with several wrappers/executables found in the cmd directory.

Command Description
geth Our main Ethereum CLI client. It is the entry point into the Ethereum network (main-, test- or private net), capable of running as a full node (default), archive node (retaining all historical state) or a light node (retrieving data live). It can be used by other processes as a gateway into the Ethereum network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. geth --help and the CLI page for command line options.
clef Stand-alone signing tool, which can be used as a backend signer for geth.
devp2p Utilities to interact with nodes on the networking layer, without running a full blockchain.
abigen Source code generator to convert Ethereum contract definitions into easy-to-use, compile-time type-safe Go packages. It operates on plain Ethereum contract ABIs with expanded functionality if the contract bytecode is also available. However, it also accepts Solidity source files, making development much more streamlined. Please see our Native DApps page for details.
bootnode Stripped down version of our Ethereum client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It can be used as a lightweight bootstrap node to aid in finding peers in private networks.
evm Developer utility version of the EVM (Ethereum Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. evm --code 60ff60ff --debug run).
rlpdump Developer utility tool to convert binary RLP (Recursive Length Prefix) dumps (data encoding used by the Ethereum protocol both network as well as consensus wise) to user-friendlier hierarchical representation (e.g. rlpdump --hex CE0183FFFFFFC4C304050583616263).

Running geth

Going through all the possible command line flags is out of scope here (please consult our CLI Wiki page), but we've enumerated a few common parameter combos to get you up to speed quickly on how you can run your own geth instance.

Hardware Requirements

Minimum:

  • CPU with 2+ cores
  • 4GB RAM
  • 1TB free storage space to sync the Mainnet
  • 8 MBit/sec download Internet service

Recommended:

  • Fast CPU with 4+ cores
  • 16GB+ RAM
  • High-performance SSD with at least 1TB of free space
  • 25+ MBit/sec download Internet service

Full node on the main Ethereum network

By far the most common scenario is people wanting to simply interact with the Ethereum network: create accounts; transfer funds; deploy and interact with contracts. For this particular use case, the user doesn't care about years-old historical data, so we can sync quickly to the current state of the network. To do so:

$ geth console

This command will:

  • Start geth in snap sync mode (default, can be changed with the --syncmode flag), causing it to download more data in exchange for avoiding processing the entire history of the Ethereum network, which is very CPU intensive.
  • Start the built-in interactive JavaScript console, (via the trailing console subcommand) through which you can interact using web3 methods (note: the web3 version bundled within geth is very old, and not up to date with official docs), as well as geth's own management APIs. This tool is optional and if you leave it out you can always attach it to an already running geth instance with geth attach.

A Full node on the Görli test network

Transitioning towards developers, if you'd like to play around with creating Ethereum contracts, you almost certainly would like to do that without any real money involved until you get the hang of the entire system. In other words, instead of attaching to the main network, you want to join the test network with your node, which is fully equivalent to the main network, but with play-Ether only.

$ geth --goerli console

The console subcommand has the same meaning as above and is equally useful on the testnet too.

Specifying the --goerli flag, however, will reconfigure your geth instance a bit:

  • Instead of connecting to the main Ethereum network, the client will connect to the Görli test network, which uses different P2P bootnodes, different network IDs and genesis states.
  • Instead of using the default data directory (~/.ethereum on Linux for example), geth will nest itself one level deeper into a goerli subfolder (~/.ethereum/goerli on Linux). Note, on OSX and Linux this also means that attaching to a running testnet node requires the use of a custom endpoint since geth attach will try to attach to a production node endpoint by default, e.g., geth attach <datadir>/goerli/geth.ipc. Windows users are not affected by this.

Note: Although some internal protective measures prevent transactions from crossing over between the main network and test network, you should always use separate accounts for play and real money. Unless you manually move accounts, geth will by default correctly separate the two networks and will not make any accounts available between them.

Configuration

As an alternative to passing the numerous flags to the geth binary, you can also pass a configuration file via:

$ geth --config /path/to/your_config.toml

To get an idea of how the file should look like you can use the dumpconfig subcommand to export your existing configuration:

$ geth --your-favourite-flags dumpconfig

Note: This works only with geth v1.6.0 and above.

Docker quick start

One of the quickest ways to get Ethereum up and running on your machine is by using Docker:

docker run -d --name ethereum-node -v /Users/alice/ethereum:/root \
           -p 8545:8545 -p 30303:30303 \
           ethereum/client-go

This will start geth in snap-sync mode with a DB memory allowance of 1GB, as the above command does. It will also create a persistent volume in your home directory for saving your blockchain as well as map the default ports. There is also an alpine tag available for a slim version of the image.

Do not forget --http.addr 0.0.0.0, if you want to access RPC from other containers and/or hosts. By default, geth binds to the local interface and RPC endpoints are not accessible from the outside.

Programmatically interfacing geth nodes

As a developer, sooner rather than later you'll want to start interacting with geth and the Ethereum network via your own programs and not manually through the console. To aid this, geth has built-in support for a JSON-RPC based APIs (standard APIs and geth specific APIs). These can be exposed via HTTP, WebSockets and IPC (UNIX sockets on UNIX based platforms, and named pipes on Windows).

The IPC interface is enabled by default and exposes all the APIs supported by geth, whereas the HTTP and WS interfaces need to manually be enabled and only expose a subset of APIs due to security reasons. These can be turned on/off and configured as you'd expect.

HTTP based JSON-RPC API options:

  • --http Enable the HTTP-RPC server
  • --http.addr HTTP-RPC server listening interface (default: localhost)
  • --http.port HTTP-RPC server listening port (default: 8545)
  • --http.api API's offered over the HTTP-RPC interface (default: eth,net,web3)
  • --http.corsdomain Comma separated list of domains from which to accept cross origin requests (browser enforced)
  • --ws Enable the WS-RPC server
  • --ws.addr WS-RPC server listening interface (default: localhost)
  • --ws.port WS-RPC server listening port (default: 8546)
  • --ws.api API's offered over the WS-RPC interface (default: eth,net,web3)
  • --ws.origins Origins from which to accept WebSocket requests
  • --ipcdisable Disable the IPC-RPC server
  • --ipcapi API's offered over the IPC-RPC interface (default: admin,debug,eth,miner,net,personal,txpool,web3)
  • --ipcpath Filename for IPC socket/pipe within the datadir (explicit paths escape it)

You'll need to use your own programming environments' capabilities (libraries, tools, etc) to connect via HTTP, WS or IPC to a geth node configured with the above flags and you'll need to speak JSON-RPC on all transports. You can reuse the same connection for multiple requests!

Note: Please understand the security implications of opening up an HTTP/WS based transport before doing so! Hackers on the internet are actively trying to subvert Ethereum nodes with exposed APIs! Further, all browser tabs can access locally running web servers, so malicious web pages could try to subvert locally available APIs!

Operating a private network

Maintaining your own private network is more involved as a lot of configurations taken for granted in the official networks need to be manually set up.

Defining the private genesis state

First, you'll need to create the genesis state of your networks, which all nodes need to be aware of and agree upon. This consists of a small JSON file (e.g. call it genesis.json):

{
  "config": {
    "chainId": <arbitrary positive integer>,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "berlinBlock": 0,
    "londonBlock": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x20000",
  "extraData": "",
  "gasLimit": "0x2fefd8",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

The above fields should be fine for most purposes, although we'd recommend changing the nonce to some random value so you prevent unknown remote nodes from being able to connect to you. If you'd like to pre-fund some accounts for easier testing, create the accounts and populate the alloc field with their addresses.

"alloc": {
  "0x0000000000000000000000000000000000000001": {
    "balance": "111111111"
  },
  "0x0000000000000000000000000000000000000002": {
    "balance": "222222222"
  }
}

With the genesis state defined in the above JSON file, you'll need to initialize every geth node with it prior to starting it up to ensure all blockchain parameters are correctly set:

$ geth init path/to/genesis.json

Creating the rendezvous point

With all nodes that you want to run initialized to the desired genesis state, you'll need to start a bootstrap node that others can use to find each other in your network and/or over the internet. The clean way is to configure and run a dedicated bootnode:

$ bootnode --genkey=boot.key
$ bootnode --nodekey=boot.key

With the bootnode online, it will display an enode URL that other nodes can use to connect to it and exchange peer information. Make sure to replace the displayed IP address information (most probably [::]) with your externally accessible IP to get the actual enode URL.

Note: You could also use a full-fledged geth node as a bootnode, but it's the less recommended way.

Starting up your member nodes

With the bootnode operational and externally reachable (you can try telnet <ip> <port> to ensure it's indeed reachable), start every subsequent geth node pointed to the bootnode for peer discovery via the --bootnodes flag. It will probably also be desirable to keep the data directory of your private network separated, so do also specify a custom --datadir flag.

$ geth --datadir=path/to/custom/data/folder --bootnodes=<bootnode-enode-url-from-above>

Note: Since your network will be completely cut off from the main and test networks, you'll also need to configure a miner to process transactions and create new blocks for you.

Running a private miner

In a private network setting a single CPU miner instance is more than enough for practical purposes as it can produce a stable stream of blocks at the correct intervals without needing heavy resources (consider running on a single thread, no need for multiple ones either). To start a geth instance for mining, run it with all your usual flags, extended by:

$ geth <usual-flags> --mine --miner.threads=1 --miner.etherbase=0x0000000000000000000000000000000000000000

Which will start mining blocks and transactions on a single CPU thread, crediting all proceedings to the account specified by --miner.etherbase. You can further tune the mining by changing the default gas limit blocks converge to (--miner.targetgaslimit) and the price transactions are accepted at (--miner.gasprice).

Contribution

Thank you for considering helping out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!

If you'd like to contribute to go-ethereum, please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base. If you wish to submit more complex changes though, please check up with the core devs first on our Discord Server to ensure those changes are in line with the general philosophy of the project and/or get some early feedback which can make both your efforts much lighter as well as our review and merge procedures quick and simple.

Please make sure your contributions adhere to our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Pull requests need to be based on and opened against the master branch.
  • Commit messages should be prefixed with the package(s) they modify.
    • E.g. "eth, rpc: make trace configs optional"

Please see the Developers' Guide for more details on configuring your environment, managing project dependencies, and testing procedures.

Contributing to geth.ethereum.org

For contributions to the go-ethereum website, please checkout and raise pull requests against the website branch. For more detailed instructions please see the website branch README or the contributing page of the website.

License

The go-ethereum library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The go-ethereum binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

go-ethereum's People

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  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

go-ethereum's Issues

Ethereal: First Run Won't Import Keys or Make New Keys

When trying to have Ethereal make new account, throws this error:

first_run.qml:142: file:////home/coda/coding/gostuff/src/github.com/ethereum/go-ethereum/ethereal/assets/qml/first_run.qml:142: TypeError: Property 'createAndSetPrivKey' of object Gui(0x22b6760) is not a function

When trying to import existing keys, throws this error:

first_run.qml:64: file:////home/coda/coding/gostuff/src/github.com/ethereum/go-ethereum/ethereal/assets/qml/first_run.qml:64: TypeError: Property 'importAndSetPrivKey' of object Gui(0x267fdc0) is not a function

JSON returns blank result

Anthony Eufemio:

{"id":1,"method":"EthereumApi.GetBalanceAt","params":[{"address":"8f05f15b77c3c1ffcdc64f9056267e45f4ba258b"}]}  returns blank balance
{"id":1,"result":"{\"error\":false,\"result\":{\"balance\":\"\",\"address\":\"8f05f15b77c3c1ffcdc64f9056267e45f4ba258b\"}}","error":null}

Ethereal poc5 rc8 for loop like while loop crashes UI

The following simple contract crashes the UI
Its a for loop set up to act like a while loop

init {
}
main {
int16 start_nonce = 2000
int32 bet_nonce = 2200
for start_nonce < bet_nonce {
start_nonce = start_nonce + 10
}
}

Blocks won't verify if started with a fresh datadir and mining

When starting with a fresh data folder and mining enabled blocks that have already been found won't be validated.

2014/05/13 17:06:27 [PEER] Found conical block, returning chain from: c87939ffc7eb183dd22b70007d607a15e0beeb99bb9ddc842f698364c99a6c02
2014/05/13 17:06:27 [PEER] Returning 4 blocks: c87939ffc7eb183dd22b70007d607a15e0beeb99bb9ddc842f698364c99a6c02
[SM] Error validating block: Block timestamp less then prev block -10
2014/05/13 17:06:27 Block timestamp less then prev block -10
2014/05/13 17:06:27 [MINER] Mining on block. Includes 0 transactions

You can replicate this by rm -rvf ~/.ethereum and then starting with ethereum -m.

If anybody is able please confirm that I'm not the only one with this problem.

TODO List

This issue serves as a temporarily to do list

  • Add MIT License
  • Improve overall testing
  • Add Travis to eth packages
  • Retrieving peer blocks
  • Get peers from connecting peers
  • Add a "addpeer" option to the dev console
  • Support Tor
  • UPnP
  • NAT-PMP
  • Fix miner
  • Fix uncles
  • Improve self connect detection
  • Add disconnection reasons to peers
  • Document libraries
  • Add sync mechanism to trie. Trie shouldn't commit any changes unless requested. The trie would add an extra caching layer.
  • Get rid of RlpValue and move on to ethutil.Value
  • Chain iterator (or partial iterator) NewIterator(options *IteratorOptions)
  • Get rid of the secp256k1 lib and implement my own

eth start err: resource temporarily unavailable

Terminal #1:

$ go-ethereum -c
2014/02/17 01:00:44 [CHAIN] Last known block height #0
2014/02/17 01:00:44 Starting Ethereum v0.2.2
Eth Console. Type (help) for help
eth >>> 2014/02/17 01:00:44 Ready and accepting connections
2014/02/17 01:00:44 Seeding
2014/02/17 01:00:45 Requesting blockchain 3714ac5c...
2014/02/17 01:00:45 peer [connected] (outbound) 54.200.139.158:30303 Ethereum(++)/Peer Server One/v0.2.9/Release/Linux/g++ [Peer discovery]
2014/02/17 01:00:45 Connection to peer failed dial tcp 98.173.194.216:30303: connection refused
2014/02/17 01:00:45 Connection to peer failed dial tcp 67.55.11.120:30303: no route to host
2014/02/17 01:00:45 Connection to peer failed dial tcp 54.204.10.41:49493: connection refused
2014/02/17 01:00:45 Connection to peer failed dial tcp 54.204.10.41:49491: connection refused
2014/02/17 01:00:46 Requesting blockchain 3714ac5c...

Terminal #2:

$ go-ethereum -m
2014/02/17 01:00:47 eth start err: resource temporarily unavailable

Am I not doing this correctly? I was unable to tell from the instructions whether go-ethereum -m was supposed to be run in addition to go-ethereum -c in another terminal :-). Thanks.

Application hang when pressing Tx button

Sometimes the application will randomly hang when pressing the "transaction" button from the left main menu. Sometimes with crashlog, sometimes without any output at all.

2014/05/28 10:20:39 [CHAIN] Last known block height #345
2014/05/28 10:20:39 Last block: ccb27bff5d0667b65dbfe7d29fafe02a78a4232e57d3e0c6cc33d665b38c0f6e
2014/05/28 10:20:39 Starting Ethereum GUI v0.5.0 RC10
2014/05/28 10:20:39 Ready and accepting connections
2014/05/28 10:20:39 [SERV] Retrieving seed nodes
2014/05/28 10:20:39 [SERV] Found DNS Go Peer: 94.242.229.217:30303
2014/05/28 10:20:39 [SERV] Adding peer (94.242.229.217:30303) 1 / 10
2014/05/28 10:20:39 [SERV] Found DNS Bootstrap Peer: 54.200.139.158:30303
2014/05/28 10:20:39 [SERV] Adding peer (54.200.139.158:30303) 2 / 10
2014/05/28 10:20:39 [GUI] Starting GUI
2014/05/28 10:20:40 Requesting blockchain ccb27bff... from peer 94.242.229.217:30303
2014/05/28 10:20:40 [PEER] [connected] (outbound) 94.242.229.217:30303  [Peer discovery | Block chain relaying | Transaction relaying]
2014/05/28 10:20:41 [PEER] Found canonical block, returning chain from: ccb27bff5d0667b65dbfe7d29fafe02a78a4232e57d3e0c6cc33d665b38c0f6e
SIGSEGV: segmentation violation
PC=0x5c4d938
signal arrived during cgo execution

runtime.cgocallbackg()
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/cgocall.c:267 +0x89 fp=0x6d7bed0
runtime.cgocallback_gofunc(0x4060ed3, 0x40016f0, 0x6d7bf48)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/asm_amd64.s:711 +0x67 fp=0x6d7bee0
runtime.asmcgocall(0x40016f0, 0x6d7bf48)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/asm_amd64.s:618 +0x2d fp=0x6d7bee8
runtime.cgocall(0x40016f0, 0x6d7bf48)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/cgocall.c:149 +0x133 fp=0x6d7bf30
github.com/go-qml/qml._Cfunc_applicationExec(0x4a1ca68)
    github.com/go-qml/qml/_obj/_cgo_defun.c:69 +0x31 fp=0x6d7bf48
github.com/go-qml/qml.guiLoop()
    /Users/jeffrey/go/src/github.com/go-qml/qml/bridge.go:43 +0x132 fp=0x6d7bfa0
runtime.goexit()
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/proc.c:1394 fp=0x6d7bfa8
created by github.com/go-qml/qml.Init
    /Users/jeffrey/go/src/github.com/go-qml/qml/qml.go:44 +0xa0

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc210e5542c)
    /private/tmp/go-UGkN/go/src/pkg/runtime/sema.goc:199 +0x30
sync.(*Mutex).Lock(0xc210e55428)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/sync/mutex.go:66 +0xd6
github.com/go-qml/qml.(*Window).Wait(0xc210e543b0)
    /Users/jeffrey/go/src/github.com/go-qml/qml/qml.go:892 +0x9b
github.com/ethereum/go-ethereum/ethereal/ui.(*Gui).Start(0xc2109c8420, 0x44ebc60, 0x0)
    /Users/jeffrey/go/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:97 +0x61c
main.main()
    /Users/jeffrey/go/src/github.com/ethereum/go-ethereum/ethereal/ethereum.go:128 +0x7bc

goroutine 3 [syscall]:
os/signal.loop()
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/os/signal/signal_unix.go:21 +0x1e
created by os/signal.init·1
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/os/signal/signal_unix.go:27 +0x31

goroutine 4 [syscall]:
runtime.goexit()
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/runtime/proc.c:1394

goroutine 7 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc210081480)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 8 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc210081480)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 9 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc210081480)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 10 [select]:
github.com/ethereum/eth-go/ethchain.(*TxPool).queueHandler(0xc21003acc0)
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:174 +0x2c8
created by github.com/ethereum/eth-go/ethchain.(*TxPool).Start
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:245 +0x2e

goroutine 11 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc210081b40)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 12 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc210081b40)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 13 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc210081b40)
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
    /Users/jeffrey/go/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 14 [IO wait]:
net.runtime_pollWait(0x67a75f8, 0x72, 0x0)
    /private/tmp/go-UGkN/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(*pollDesc).Wait(0xc2109b6060, 0x72, 0x67a40e8, 0x23)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(*pollDesc).WaitRead(0xc2109b6060, 0x23, 0x67a40e8)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(*netFD).accept(0xc2109b6000, 0x45da370, 0x0, 0x67a40e8, 0x23)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_unix.go:382 +0x2c2
net.(*TCPListener).AcceptTCP(0xc210000d18, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/tcpsock_posix.go:233 +0x47
net.(*TCPListener).Accept(0xc210000d18, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/tcpsock_posix.go:243 +0x27
github.com/ethereum/eth-go.(*Ethereum).peerHandler(0xc21007a160, 0x67a6658, 0xc210000d18)
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethereum.go:412 +0x2d
created by github.com/ethereum/eth-go.(*Ethereum).Start
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethereum.go:339 +0x2a5

goroutine 15 [chan receive]:
github.com/ethereum/eth-go.(*Ethereum).ReapDeadPeerHandler(0xc21007a160)
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethereum.go:321 +0x67
created by github.com/ethereum/eth-go.(*Ethereum).Start
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/ethereum.go:347 +0x18e

goroutine 18 [IO wait]:
net.runtime_pollWait(0x67a7550, 0x77, 0x0)
    /private/tmp/go-UGkN/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(*pollDesc).Wait(0xc210e530d0, 0x77, 0x67a40e8, 0x24)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(*pollDesc).WaitWrite(0xc210e530d0, 0x24, 0x67a40e8)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_poll_runtime.go:90 +0x30
net.(*netFD).connect(0xc210e53070, 0x0, 0x0, 0x67a77a8, 0xc2109b11a0, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_unix.go:86 +0x166
net.(*netFD).dial(0xc210e53070, 0x67a6690, 0x0, 0x67a6690, 0xc21007b0f0, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/sock_posix.go:121 +0x2fd
net.socket(0x45091a0, 0x3, 0x2, 0x1, 0x0, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/sock_posix.go:91 +0x40b
net.internetSocket(0x45091a0, 0x3, 0x67a6690, 0x0, 0x67a6690, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/ipsock_posix.go:136 +0x161
net.dialTCP(0x45091a0, 0x3, 0x0, 0xc21007b0f0, 0xecb179375, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/tcpsock_posix.go:155 +0xef
net.dialSingle(0x45091a0, 0x3, 0xc210082a60, 0x14, 0x0, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/dial.go:225 +0x3d8
net.func·015(0xecb179375, 0x2ee519db, 0x4a13920, 0x6fc23ac00, 0xecb179375, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/dial.go:158 +0xde
net.dial(0x45091a0, 0x3, 0x67a6628, 0xc21007b0f0, 0x6fcce38, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/fd_unix.go:40 +0x45
net.(*Dialer).Dial(0xc2109bb040, 0x45091a0, 0x3, 0xc210082a60, 0x14, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/dial.go:165 +0x3e0
net.DialTimeout(0x45091a0, 0x3, 0xc210082a60, 0x14, 0x6fc23ac00, ...)
    /usr/local/Cellar/go/1.2.1/libexec/src/pkg/net/dial.go:145 +0xaa
github.com/ethereum/eth-go.func·009()
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:169 +0x5f
created by github.com/ethereum/eth-go.NewOutboundPeer
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:183 +0x14f

goroutine 19 [select]:
github.com/ethereum/eth-go.(*Peer).HandleOutbound(0xc210079480)
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:227 +0x246
created by github.com/ethereum/eth-go.(*Peer).Start
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:506 +0x2a0

goroutine 20 [sleep]:
time.Sleep(0x1dcd6500)
    /private/tmp/go-UGkN/go/src/pkg/runtime/time.goc:31 +0x31
github.com/ethereum/eth-go.(*Peer).HandleInbound(0xc210079480)
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:269 +0x5f
created by github.com/ethereum/eth-go.(*Peer).Start
    /Users/jeffrey/go/src/github.com/ethereum/eth-go/peer.go:508 +0x2ba

goroutine 23 [select]:
github.com/ethereum/go-ethereum/ethereal/ui.(*Gui).update(0xc2109c8420)
    /Users/jeffrey/go/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:203 +0xc1b
created by github.com/ethereum/go-ethereum/ethereal/ui.(*Gui).showWallet
    /Users/jeffrey/go/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:112 +0xf9

rax     0x75c4bf2d
rbx     0x10ada750
rcx     0x2
rdx     0x2
rdi     0x11332d80
rsi     0x1
rbp     0x7fff5fbfafd0
rsp     0x7fff5fbfafd0
r8      0x7fff5fbfb450
r9      0x0
r10     0x0
r11     0x5babe00
r12     0x2
r13     0x10ada750
r14     0x10ae7090
r15     0x7fff5fbfb450
rip     0x5c4d938
rflags  0x10202
cs      0x2b
fs      0x0
gs      0x75c40000

Autorefresh the html apps on source code change

My go-fu isn't good enough for this - but would it be possible to make html_container.go refresh the webview on source code change? (like in meteor.js) - It would make development a lot easier (as we could just leave the webapp opened on one screen while coding on the other).

Thanks 👍

"Not in chain...Asking for block from..." loop?

I get the following

$ bin/ethereal.sh
2014/05/28 23:48:38 [CHAIN] Last known block height #0
2014/05/28 23:48:38 Last block: f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6
2014/05/28 23:48:38 Starting Ethereum GUI v0.5.0 RC11
2014/05/28 23:48:38 Ready and accepting connections
2014/05/28 23:48:38 [SERV] Retrieving seed nodes
2014/05/28 23:48:38 [SERV] Found DNS Go Peer: 94.242.229.217:30303
2014/05/28 23:48:38 [SERV] Adding peer (94.242.229.217:30303) 1 / 10
2014/05/28 23:48:39 [SERV] Found DNS Bootstrap Peer: 54.200.139.158:30303
2014/05/28 23:48:39 [SERV] Adding peer (54.200.139.158:30303) 2 / 10
2014/05/28 23:48:39 [GUI] Starting GUI
2014/05/28 23:48:39 Requesting blockchain f5232afe... from peer 94.242.229.217:30303
2014/05/28 23:48:39 [PEER] connected 94.242.229.217:30303 [Peer discovery | Block chain relaying | Transaction relaying]
2014/05/28 23:48:41 Not in chain: f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6
2014/05/28 23:48:41 Asking for block from f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6 (1 total) from 94.242.229.217:30303
2014/05/28 23:48:43 Not in chain: f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6
2014/05/28 23:48:43 Asking for block from f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6 (1 total) from 94.242.229.217:30303

... this is from commit 0b4c42d

Is there a way to select my peers? seem that 94.242.229.217:30303 and 54.200.139.158:30303 don't have f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6

What are my options?

Latest Build ignoring rpc = true in ~/.ethereum/conf.ini

My ~/.ethereum/conf.ini

id = "eufemio"
port = 30303
upnp = true
maxpeer = 10
rpc = true
rpcport = 8080
asset_path = /Users/aeufemio/go/src/github.com/ethereum/go-ethereum/ethereal/assets
$ telnet localhost 8080
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

Commit 65c5a20

Ethereum js repl does not contain the expanded String object

I was trying to use the etereum -js repl to send data to a contract. However, it does not contain the expanded String object as mentioned in PoC 5 Javascript

I should be able to do

("1".pad(32) + "65".pad(52)).unbin()

to get the data string

however:

> ("1".pad(32) + "65".pad(32)).unbin()
TypeError: undefined is not a function

> String.pad
undefined

Peer network health check

Do a p2p health check each X minutes consisting of the following actions:

  • Validate peers and determine the peer's quality
  • If the (undefined) desired peer amount isn't met do a get peer request on each peer and connect to them.

License ?

What open source software license are you using? I can't find it listed in any of the projects.

Already syncing up with a peer; sleeping (then crashes)

OSX mavericks with v05 RC7

Using ethereum -m

It starts then crashes with the following debug log

2014/05/20 17:10:54 Starting Ethereum v0.5.0 RC7
2014/05/20 17:10:54 Ready and accepting connections
2014/05/20 17:10:54 [SERV] Retrieving seed nodes
2014/05/20 17:10:54 [SERV] Found DNS Go Peer: 94.242.229.217:30303
2014/05/20 17:10:54 [SERV] Found DNS Go Peer: 94.242.209.203:30303
2014/05/20 17:10:54 [SERV] Adding peer (94.242.229.217:30303) 1 / 10
2014/05/20 17:10:54 [SERV] Adding peer (94.242.209.203:30303) 2 / 10
2014/05/20 17:10:54 [SERV] Found DNS Bootstrap Peer: 54.200.139.158:30303
2014/05/20 17:10:54 [SERV] Adding peer (54.200.139.158:30303) 3 / 10
2014/05/20 17:10:54 Connection to peer failed dial tcp 54.200.139.158:30303: connection refused
2014/05/20 17:10:55 Requesting blockchain f5232afe... from peer 94.242.229.217:30303
2014/05/20 17:10:55 [PEER] connected 94.242.229.217:30303 [Peer discovery | Block chain relaying | Transaction relaying]
2014/05/20 17:10:55 Already syncing up with a peer; sleeping
2014/05/20 17:10:57 Miner started

I removed previous ~/.ethereum and ~/.ethereal

Added readline via brew and then upgraded from rc6

Go build error

This is the issue:

$ go get -u github.com/ethereum/go-ethereum

github.com/obscuren/secp256k1-go

In file included from go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num.h:11,
from go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/secp256k1.c:5,
from go/src/github.com/obscuren/secp256k1-go/secp256.go:9:
go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h: In function ‘secp256k1_num_mul’:
go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h:214: warning: implicit declaration of function ‘mpn_copyi’

github.com/obscuren/secp256k1-go

/tmp/go-build546678893/github.com/obscuren/secp256k1-go/_obj/secp256.cgo2.o: In function secp256k1_num_div': go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h:231: undefined reference tompn_copyi'
/tmp/go-build546678893/github.com/obscuren/secp256k1-go/_obj/secp256.cgo2.o: In function secp256k1_num_mul': go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h:214: undefined reference tompn_copyi'
/tmp/go-build546678893/github.com/obscuren/secp256k1-go/_obj/secp256.cgo2.o: In function secp256k1_num_split': go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h:328: undefined reference tompn_copyi'

Please consider adding a branch.

Importing App causes Seg Fault

Every time I attempt to Import App, after selecting any file (including the samplecoin.html). This has happened both on OSX and Linux:

go 1.2.1
qt 5.2.1

After installing 5.2.0, the SegFault did not appear.
Stacktrace below:

2014/04/28 11:30:19 qxcbsessionmanager.cpp:374: Qt: Session management error: Could not open network socket
2014/04/28 11:30:19 [CHAIN] Last known block height #1
2014/04/28 11:30:19 Last block: ab6b9a5613970faa771b12d449b2e9bb925ab7a369f0a4b86b286e9d540099cf
2014/04/28 11:30:19 Starting Ethereum GUI v0.5
2014/04/28 11:30:19 wallet.qml:438: file:////home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/assets/qml/wallet.qml:438: ReferenceError: parent is not defined
Error creating proxy: Could not connect: Connection refused (g-io-error-quark, 39)
Error creating proxy: Could not connect: Connection refused (g-io-error-quark, 39)
Error creating proxy: Could not connect: Connection refused (g-io-error-quark, 39)
Error creating proxy: Could not connect: Connection refused (g-io-error-quark, 39)
Error creating proxy: Could not connect: Connection refused (g-io-error-quark, 39)
2014/04/28 11:30:23 plugin.cpp:52:
WARNING: This project is using the experimental QML API extensions for QtWebKit and is therefore tied to a specific QtWebKit release.
WARNING: The experimental API will change from version to version, or even be removed. You have been warned!

SIGSEGV: segmentation violation
PC=0x7f2b232a152a
signal arrived during cgo execution

runtime.cgocallbackg()
/usr/lib/go/src/pkg/runtime/cgocall.c:267 +0x89 fp=0x7f2b1ba786d0
runtime.cgocallback_gofunc(0x498e13, 0x43f100, 0x7f2b1ba78748)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:711 +0x67 fp=0x7f2b1ba786e0
runtime.asmcgocall(0x43f100, 0x7f2b1ba78748)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:618 +0x2d fp=0x7f2b1ba786e8
runtime.cgocall(0x43f100, 0x7f2b1ba78748)
/usr/lib/go/src/pkg/runtime/cgocall.c:149 +0x133 fp=0x7f2b1ba78730
github.com/go-qml/qml._Cfunc_componentCreateWindow(0x50a5000, 0x0, 0x7fe0b52debc0)
github.com/go-qml/qml/_obj/_cgo_defun.c:84 +0x31 fp=0x7fe0abd9b748
github.com/go-qml/qml.func·023()
/home/coda/sites/gostuff/src/github.com/go-qml/qml/qml.go:731 +0x57 fp=0x7fe0abd9b770
github.com/go-qml/qml.RunMain(0xc210092e00)
/home/coda/sites/gostuff/src/github.com/go-qml/qml/bridge.go:63 +0xcc fp=0x7fe0abd9b798
github.com/go-qml/qml.(_Common).CreateWindow(0xc210037a40, 0x0, 0x5b)
/home/coda/sites/gostuff/src/github.com/go-qml/qml/qml.go:732 +0x117 fp=0x7fe0abd9b7e0
github.com/ethereum/go-ethereum/ethereal/ui.(_UiLib).OpenHtml(0xc21006d540, 0xc210e46e70, 0x63)
/home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/ui/ui_lib.go:62 +0x1b7 fp=0x7fe0abd9b888
runtime.call32(0x8434d8, 0xc210092dc0)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:339 +0x32 fp=0x7fe0abd9b8b0
reflect.Value.call(0x843300, 0xc21006d540, 0xf38, 0x873620, 0x4, ...)
/usr/lib/go/src/pkg/reflect/value.go:474 +0xe0b fp=0x7fe0abd9baf0
reflect.Value.Call(0x843300, 0xc21006d540, 0xf38, 0x7fe0abd9bcf0, 0x1, ...)
/usr/lib/go/src/pkg/reflect/value.go:345 +0x9d fp=0x7fe0abd9bb50
github.com/go-qml/qml.hookGoValueCallMethod(0x2f2adb0, 0xc21001feb0, 0x7, 0x7fff9cec4720)
/home/coda/sites/gostuff/src/github.com/go-qml/qml/bridge.go:497 +0x40c fp=0x7fe0abd9bde8
----- stack segment boundary -----
runtime.cgocallbackg1()
/usr/lib/go/src/pkg/runtime/cgocall.c:296 +0xbf fp=0x7f2b1ba78ec0
runtime.cgocallbackg()
/usr/lib/go/src/pkg/runtime/cgocall.c:266 +0x84 fp=0x7f2b1ba78ed0
runtime.cgocallback_gofunc(0x498e13, 0x43efd0, 0x7f2b1ba78f48)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:711 +0x67 fp=0x7f2b1ba78ee0
runtime.asmcgocall(0x43efd0, 0x7f2b1ba78f48)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:618 +0x2d fp=0x7f2b1ba78ee8
runtime.cgocall(0x43efd0, 0x7f2b1ba78f48)
/usr/lib/go/src/pkg/runtime/cgocall.c:149 +0x133 fp=0x7f2b1ba78f30
github.com/go-qml/qml._Cfunc_applicationExec(0xefc598)
github.com/go-qml/qml/_obj/_cgo_defun.c:57 +0x31 fp=0x7f2b1ba78f48
github.com/go-qml/qml.guiLoop()
/home/coda/sites/gostuff/src/github.com/go-qml/qml/bridge.go:43 +0x132 fp=0x7f2b1ba78fa0
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394 fp=0x7f2b1ba78fa8
created by github.com/go-qml/qml.Init
/home/coda/sites/gostuff/src/github.com/go-qml/qml/qml.go:44 +0xa0

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc210e5b00c)
/usr/lib/go/src/pkg/runtime/sema.goc:199 +0x30
sync.(_Mutex).Lock(0xc210e5b008)
/usr/lib/go/src/pkg/sync/mutex.go:66 +0xd6
github.com/go-qml/qml.(_Window).Wait(0xc210037850)
/home/coda/sites/gostuff/src/github.com/go-qml/qml/qml.go:884 +0x9b
github.com/ethereum/go-ethereum/ethereal/ui.(*Gui).Start(0xc21001f780, 0x7fffd1384c53, 0x4c)
/home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:113 +0x855
main.main()
/home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/ethereum.go:107 +0x6a4

goroutine 3 [syscall]:
os/signal.loop()
/usr/lib/go/src/pkg/os/signal/signal_unix.go:21 +0x1e
created by os/signal.init·1
/usr/lib/go/src/pkg/os/signal/signal_unix.go:27 +0x31

goroutine 4 [syscall]:
runtime.cgocallbackg()
/usr/lib/go/src/pkg/runtime/cgocall.c:267 +0x89
runtime.cgocallback_gofunc(0x0, 0x0, 0x0)
/usr/lib/go/src/pkg/runtime/asm_amd64.s:711 +0x67
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394

goroutine 6 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc21006db40)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 7 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc21006db40)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 8 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc21006db40)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 9 [select]:
github.com/ethereum/eth-go/ethchain.(_TxPool).queueHandler(0xc210070d20)
/home/coda/sites/gostuff/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:170 +0x541
created by github.com/ethereum/eth-go/ethchain.(_TxPool).Start
/home/coda/sites/gostuff/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:239 +0x2e

goroutine 10 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc21006dd80)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 11 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc21006dd80)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 12 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc21006dd80)
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
/home/coda/sites/gostuff/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 15 [chan receive]:
github.com/ethereum/go-ethereum/ethereal/ui.(_Gui).update(0xc21001f780)
/home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:151 +0x383
created by github.com/ethereum/go-ethereum/ethereal/ui.(_Gui).Start
/home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:109 +0x82b

goroutine 16 [syscall]:
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394

rax 0x7f2b22d65618
rbx 0x3886260
rcx 0x2
rdx 0x7f2b22d65688
rdi 0x7f2ae4a657e0
rsi 0x0
rbp 0x7f2ae4a657e0
rsp 0x7fffd1381fc0
r8 0xb
r9 0x11
r10 0x0
r11 0x206
r12 0x0
r13 0x14a90d0
r14 0x7fffd13820b0
r15 0x21
rip 0x7f2b232a152a
rflags 0x10206
cs 0x33
fs 0x0
gs 0x0

Cannot get Wei into Ethereal Interface

ethereal -m does not mine.
ethereum -m -dir .ethereal mines, but when opening ethereal there are no wei.

Am not sure if this is related, but whenever I open ethereal (whether mining or not), it throws this exception:

wallet.qml:438: file:////home/coda/sites/gostuff/src/github.com/ethereum/go-ethereum/ethereal/assets/qml/wallet.qml:438: ReferenceError: parent is not defined

Things seem to be really coming together! Thanks for all the hard work.

sha3 not found Mac Mavericks

$ go get github.com/ethereum/go-ethereum
# cd .; git clone https://github.com/obscuren/sha3 /Users/peterv/go/src/github.com/obscuren/sha3
Cloning into '/Users/peterv/go/src/github.com/obscuren/sha3'...
remote: Repository not found.
fatal: repository 'https://github.com/obscuren/sha3/' not found

RC9 Ethereum doesn't install

On osx 10.9.2:

Trying to :
go get -u -v github.com/ethereum/go-ethereum/ethereum

On top of RC8 results in:

github.com/ethereum/eth-go
github.com/ethereum/eth-go/ethminer
github.com/ethereum/go-ethereum/utils
github.com/ethereum/go-ethereum/ethereum
# github.com/ethereum/go-ethereum/ethereum
37: error: use of undeclared identifier 'rl_catch_sigwinch'
37: error: use of undeclared identifier 'rl_resize_terminal'; did you mean 'rl_reset_terminal'?
`37: error: use of undeclared identifier 'rl_catch_signals'``

Stuck on a particular block

I've been following the ethereum project for a while now and got the alpha miner up and running. Everything seems to work fine untill the miner got stuck on a specific block.

+++++++ MINED BLK +++++++ Block(1998c7cc98cce79e6769e93ea9e0b109d687651d87965295dd809f56f4e9a117): PrevHash:2b777bf9f0c3dbc657e276a3fa64b4ab6be1e339a8e3bf1521389b64b2d90554 UncleSha:1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase:a941ac9bdfc06ca994b71470ecc64816ff4ac302 Root:bc6be99e96fbcb686f12920caf3fb1761eb278acc4d7c02598eacc06e61e54e9 TxSha:1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Diff:4382611 Time:1392121613 Nonce:ead00017ec4f54f8e0f1850def82a4a73616e0a962e36f06b3a91946070ee1fb 2014/02/11 13:27:47 [BMGR] Processing block(78f280bf7925e8977541a949d6b6918e22913ed362f8a920e8f944e75a1051d8) 2014/02/11 13:27:47 [BMGR] TD(block) = 523054984

It has hung there for ~10 minuttes. When restarting the miner everyting seems to work just fine untill it hits another block that's causing difficulties such as 308715148 or 921219054.

Edit: it has now been running smoothly for ~1,5 hours. I'll close this in a few hours if everything goes well.

Build error at line 174 in peer.go

I'm getting this error when trying to build the project:

$ go get -u -t github.com/ethereum/go-ethereum
# github.com/ethereum/eth-go
..\eth-go\peer.go:174: block.MakeContracts undefined (type *ethchain.Block has n
o field or method MakeContracts

It seems like either peer.go needs to say MakeContract() instead of MakeContracts(), I was only able to find a block.MakeContract() function in ethchain-go.

Go build fail on OS X: Passing char to const unsigned char; and arg>parameter

OpenAir:go-ethereum batsonjay$ go get -u github.com/ethereum/go-ethereum

github.com/obscuren/secp256k1-go

In file included from /Users/batsonjay/Code/go/src/github.com/obscuren/secp256k1-go/secp256.go:9:
In file included from ../../code/go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/secp256k1.c:5:
In file included from ../../code/go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num.h:11:
../../code/go/src/github.com/obscuren/secp256k1-go/./secp256k1/src/impl/num_gmp.h:286:37: warning: passing 'char [257]' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
/usr/local/include/gmp.h:1563:68: note: passing argument to parameter here
OpenAir:go-ethereum batsonjay$ go-ethereum -m
-bash: go-ethereum: command not found

I don't know what to propose as a solution.

JSON-RPC EthereumApi.Transact crashes

Crash sending a transaction on JSON-RPC

{"id":1,"method":"EthereumApi.Transact","params":[{"recipient":"004ec17c4c9508fbb8d9834f960df510e2f7127f","value":"30","gas":"100","gasprice":"10"}]}

Stack trace

2014/05/29 19:13:26 [CHAIN] Last known block height #2054
2014/05/29 19:13:26 Last block: c3cd40805a1ae57666d2bb90dee7c5152ba7a3743f00a9ac093cf2f1692164d4
2014/05/29 19:13:26 Miner started
2014/05/29 19:13:26 Starting Ethereum GUI v0.5.0 RC11
2014/05/29 19:13:26 [JSON] Starting JSON-RPC server
2014/05/29 19:13:26 Ready and accepting connections
2014/05/29 19:13:26 [SERV] Retrieving seed nodes
2014/05/29 19:13:26 [SERV] Found DNS Go Peer: 94.242.229.217:30303
2014/05/29 19:13:26 [SERV] Adding peer (94.242.229.217:30303) 1 / 10
2014/05/29 19:13:26 [SERV] Found DNS Bootstrap Peer: 54.200.139.158:30303
2014/05/29 19:13:26 [SERV] Adding peer (54.200.139.158:30303) 2 / 10
2014/05/29 19:13:26 [GUI] Starting GUI
2014/05/29 19:13:27 Requesting blockchain c3cd4080... from peer 94.242.229.217:30303
2014/05/29 19:13:27 [PEER] [connected] (outbound) 94.242.229.217:30303  [Peer discovery | Block chain relaying | Transaction relaying]
2014/05/29 19:13:29 [PEER] Found canonical block, returning chain from: c3cd40805a1ae57666d2bb90dee7c5152ba7a3743f00a9ac093cf2f1692164d4
2014/05/29 19:13:29 Miner started
2014/05/29 19:13:29 [MINER] Mining on block. Includes 0 transactions
2014/05/29 19:13:32 [JSON] Incoming request.
2014/05/29 19:13:36 [POW] Hashing @ 181 khash
2014/05/29 19:13:38 [STATE] Added block #2055 (6cca737ec654e96b3f76ec829caeb54f34b7182e717c0704147a9be731b63cf4)
2014/05/29 19:13:38 [MINER] 🔨  Mined block 6cca737ec654e96b3f76ec829caeb54f34b7182e717c0704147a9be731b63cf4
2014/05/29 19:13:38 [MINER] Mining on block. Includes 0 transactions
panic: runtime error: slice bounds out of range

goroutine 29 [running]:
runtime.panic(0x446ea20, 0x49f972a)
    /usr/local/go/src/pkg/runtime/panic.c:266 +0xb6
github.com/ethereum/eth-go/ethutil.BigToBytes(0xc2104c5fa0, 0x100, 0x48, 0xc211294c80, 0xc211294c80)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethutil/big.go:52 +0x1e4
github.com/ethereum/eth-go/ethchain.(*StateObject).GetStorage(0xc211294c80, 0xc2104c5fa0, 0x14)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethchain/state_object.go:85 +0x30
github.com/ethereum/eth-go/ethpub.GetAddressFromNameReg(0xc2100a1690, 0xc2115b7f30, 0x28, 0x4a2fd60, 0x1, ...)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethpub/pub.go:104 +0xd4
github.com/ethereum/eth-go/ethpub.(*PEthereum).createTx(0xc2109dafc0, 0xc211e4eaf0, 0x40, 0xc2115b7f30, 0x28, ...)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethpub/pub.go:116 +0xb41
github.com/ethereum/eth-go/ethpub.(*PEthereum).Transact(0xc2109dafc0, 0xc211e4eaf0, 0x40, 0xc2115b7f30, 0x28, ...)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethpub/pub.go:92 +0xce
github.com/ethereum/eth-go/ethrpc.(*EthereumApi).Transact(0xc21053f000, 0xc2117af000, 0xc2116c8360, 0x0, 0x0)
    /Users/aeufemio/go/src/github.com/ethereum/eth-go/ethrpc/packages.go:130 +0x10a
reflect.Value.call(0x442ec00, 0x44c7440, 0x130, 0x44f2880, 0x4, ...)
    /usr/local/go/src/pkg/reflect/value.go:474 +0xe0b
reflect.Value.Call(0x442ec00, 0x44c7440, 0x130, 0x1a6dfee8, 0x3, ...)
    /usr/local/go/src/pkg/reflect/value.go:345 +0x9d
net/rpc.(*service).call(0xc2109e0000, 0xc210081680, 0xc21131f3e8, 0xc2109c7580, 0xc2119a05c0, ...)
    /usr/local/go/src/pkg/net/rpc/server.go:381 +0x159
created by net/rpc.(*Server).ServeCodec
    /usr/local/go/src/pkg/net/rpc/server.go:452 +0x3bb

Ethereal GUI freezes when submitting contracts

I'm on develop branch (commit d694e00)

Trying to submit contracts freezes and makes the GUI unresponsive. Below is a sample

init {
  this.store[this.origin()] = 10**20
}

main {
  big to = this.data[0]
  big from = this.origin()
  big value = this.data[1]
  if this.store[from] >= value {
    this.store[from] = this.store[from] - value
    this.store[to] = this.store[to] + value
  }
}

I've tried this both on OS X Mavericks and Ubuntu 14.04 with the same results. I've used the build instructions from https://github.com/ethereum/go-ethereum/wiki/Building-Qt

Build fails at eth-go/ethdb/database.go:55

root@b7e73b91c780:/# go version
go version go1.2 linux/amd64
root@b7e73b91c780:/# go get -u github.com/ethereum/go-ethereum
# github.com/ethereum/eth-go/ethdb
go/src/github.com/ethereum/eth-go/ethdb/database.go:55: not enough arguments in call to db.db.NewIterator
root@b7e73b91c780:/#

Ethereal crash on startup

I just completed the install of ethereum and ethereal by following the instructions here:
https://github.com/ethereum/go-ethereum/wiki/Building-Instructions-for-Mac

When I run ethereal from /usr/local/opt/go/share/src/github.com/ethereum/go-ethereum/ethereal , I get the following:

2014/05/25 13:30:09 [CHAIN] Last known block height #0
2014/05/25 13:30:09 Last block: f5232afe32aba6b366f8aa86a6939437c5e13d1fd71a0f51e77735d3456eb1a6
2014/05/25 13:30:09 Starting Ethereum GUI v0.5.0 RC8
2014/05/25 13:30:09 Connection listening disabled. Acting as client
2014/05/25 13:30:09 [SERV] Retrieving seed nodes
2014/05/25 13:30:09 [SERV] Found DNS Go Peer: 94.242.229.217:30303
2014/05/25 13:30:09 [SERV] Adding peer (94.242.229.217:30303) 1 / 10
2014/05/25 13:30:09 [SERV] Found DNS Bootstrap Peer: 54.200.139.158:30303
2014/05/25 13:30:09 [SERV] Adding peer (54.200.139.158:30303) 2 / 10
2014/05/25 13:30:09 [GUI] Starting GUI
2014/05/25 13:30:09 Connection to peer failed dial tcp 94.242.229.217:30303: connection refused
SIGSEGV: segmentation violation
PC=0x7fff8d29f774
signal arrived during cgo execution

runtime.cgocall(0x4002280, 0x6f01c18)
/usr/local/go/src/pkg/runtime/cgocall.c:149 +0x11b fp=0x6f01c00
github.com/go-qml/qml._Cfunc_objectIsComponent(0x6e25210, 0xc210e530e0)
github.com/go-qml/qml/_obj/_cgo_defun.c:420 +0x31 fp=0x6f01c18
github.com/go-qml/qml.(_Common).CreateWindow(0xc21000ac70, 0x0, 0x0)
/usr/local/opt/go/share/src/github.com/go-qml/qml/qml.go:721 +0x6b fp=0x6f01c60
github.com/ethereum/go-ethereum/ethereal/ui.(_Gui).createWindow(0xc2109c62a0, 0x6aa74c8, 0xc21000ac70, 0x6aa74c8)
/usr/local/opt/go/share/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:129 +0x36 fp=0x6f01c88
github.com/ethereum/go-ethereum/ethereal/ui.(_Gui).showKeyImport(0xc2109c62a0, 0xc21000aa20, 0x7, 0x7, 0x0)
/usr/local/opt/go/share/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:125 +0xe6 fp=0x6f01cc8
github.com/ethereum/go-ethereum/ethereal/ui.(_Gui).Start(0xc2109c62a0, 0x44e3f80, 0x0)
/usr/local/opt/go/share/src/github.com/ethereum/go-ethereum/ethereal/ui/gui.go:87 +0x4d2 fp=0x6f01da8
main.main()
/usr/local/opt/go/share/src/github.com/ethereum/go-ethereum/ethereal/ethereum.go:128 +0x7a2 fp=0x6f01f48
runtime.main()
/usr/local/go/src/pkg/runtime/proc.c:220 +0x11f fp=0x6f01fa0
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1394 fp=0x6f01fa8

goroutine 3 [syscall]:
os/signal.loop()
/usr/local/go/src/pkg/os/signal/signal_unix.go:21 +0x1e
created by os/signal.init·1
/usr/local/go/src/pkg/os/signal/signal_unix.go:27 +0x31

goroutine 4 [syscall]:
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1394

goroutine 6 [syscall]:
github.com/go-qml/qml._Cfunc_applicationExec(0x4a057a8)
github.com/go-qml/qml/_obj/_cgo_defun.c:69 +0x31
github.com/go-qml/qml.guiLoop()
/usr/local/opt/go/share/src/github.com/go-qml/qml/bridge.go:43 +0x132
created by github.com/go-qml/qml.Init
/usr/local/opt/go/share/src/github.com/go-qml/qml/qml.go:44 +0xa0

goroutine 7 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc21007e6c0)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 8 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc21007e6c0)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 9 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc21007e6c0)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 10 [select]:
github.com/ethereum/eth-go/ethchain.(_TxPool).queueHandler(0xc210039d20)
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:172 +0x2c8
created by github.com/ethereum/eth-go/ethchain.(_TxPool).Start
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/ethchain/transaction_pool.go:243 +0x2e

goroutine 11 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc21007e900)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:115 +0x1c5
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:114 +0x402

goroutine 12 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compaction(0xc21007e900)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:437 +0x75f
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:117 +0x443

goroutine 13 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).writeJournal(0xc21007e900)
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db_write.go:36 +0x142
created by github.com/syndtr/goleveldb/leveldb.openDB
/usr/local/opt/go/share/src/github.com/syndtr/goleveldb/leveldb/db.go:118 +0x45a

goroutine 14 [chan receive]:
github.com/ethereum/eth-go.(_Ethereum).ReapDeadPeerHandler(0xc21004c210)
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/ethereum.go:321 +0x67
created by github.com/ethereum/eth-go.(_Ethereum).Start
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/ethereum.go:347 +0x18e

goroutine 17 [IO wait]:
net.runtime_pollWait(0x6aa6df8, 0x77, 0x0)
/private/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/makerelease260794574/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc2109b90d0, 0x77, 0x6aa30e8, 0x24)
/usr/local/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitWrite(0xc2109b90d0, 0x24, 0x6aa30e8)
/usr/local/go/src/pkg/net/fd_poll_runtime.go:90 +0x30
net.(_netFD).connect(0xc2109b9070, 0x0, 0x0, 0x6aa6f48, 0xc21004b100, ...)
/usr/local/go/src/pkg/net/fd_unix.go:86 +0x166
net.(_netFD).dial(0xc2109b9070, 0x6aa5e88, 0x0, 0x6aa5e88, 0xc2109bb030, ...)
/usr/local/go/src/pkg/net/sock_posix.go:121 +0x2fd
net.socket(0x4501480, 0x3, 0x2, 0x1, 0x0, ...)
/usr/local/go/src/pkg/net/sock_posix.go:91 +0x40b
net.internetSocket(0x4501480, 0x3, 0x6aa5e88, 0x0, 0x6aa5e88, ...)
/usr/local/go/src/pkg/net/ipsock_posix.go:136 +0x161
net.dialTCP(0x4501480, 0x3, 0x0, 0xc2109bb030, 0xecb1449ef, ...)
/usr/local/go/src/pkg/net/tcpsock_posix.go:155 +0xef
net.dialSingle(0x4501480, 0x3, 0xc2109b73e0, 0x14, 0x0, ...)
/usr/local/go/src/pkg/net/dial.go:225 +0x3d8
net.func·015(0xecb1449ef, 0x5e4c54c, 0x49fd600, 0x6fc23ac00, 0xecb1449ef, ...)
/usr/local/go/src/pkg/net/dial.go:158 +0xde
net.dial(0x4501480, 0x3, 0x6aa5e20, 0xc2109bb030, 0x92dfe38, ...)
/usr/local/go/src/pkg/net/fd_unix.go:40 +0x45
net.(*Dialer).Dial(0xc2100b4040, 0x4501480, 0x3, 0xc2109b73e0, 0x14, ...)
/usr/local/go/src/pkg/net/dial.go:165 +0x3e0
net.DialTimeout(0x4501480, 0x3, 0xc2109b73e0, 0x14, 0x6fc23ac00, ...)
/usr/local/go/src/pkg/net/dial.go:145 +0xaa
github.com/ethereum/eth-go.func·009()
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/peer.go:170 +0x5f
created by github.com/ethereum/eth-go.NewOutboundPeer
/usr/local/opt/go/share/src/github.com/ethereum/eth-go/peer.go:184 +0x14f

rax 0x7fff7a49cd60
rbx 0x6e25210
rcx 0x60b7d60
rdx 0x6
rdi 0x60b7d60
rsi 0x0
rbp 0x60b7d60
rsp 0xb021cda8
r8 0x6e25210
r9 0x685c5e0
r10 0x4cdb718
r11 0x4befbd0
r12 0x685c5e0
r13 0x0
r14 0x13718760d212ea00
r15 0x10
rip 0x7fff8d29f774
rflags 0x10202
cs 0x2b
fs 0x0
gs 0x7a490000

Sending multiple transactions in one block won't work

Only one transaction will be included each block, and every following block will add one more.

2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 9 instead
2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 10 instead
2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 11 instead
2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 12 instead
2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 13 instead
2014/05/28 14:00:13 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 14 instead
2014/05/28 14:00:22 [MINER] 🔨  Mined block 74594d5a1a06b456386b1535ad8f30422dfa49304a5b74c2dec11ed61537ce1b
2014/05/28 14:00:22 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 10 instead
2014/05/28 14:00:22 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 11 instead
2014/05/28 14:00:22 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 12 instead
2014/05/28 14:00:22 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 13 instead
2014/05/28 14:00:22 [TXPL] Invalid account nonce, state nonce is 15 transaction nonce is 14 instead

etc

Build error on ./dev_console.go:161

[futex:go-ethereum]$ go build
# _/home/dpc/lab/go-ethereum
./dev_console.go:161: i.ethereum.BlockManager.BlockChain().CurrentBlock.GetAddr undefined (type *ethchain.Block has no field or method GetAddr)
[futex:go-ethereum]$ go version
go version go1.2 linux/amd64

I get the same error when I use go get.

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.