The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

73

Summary Transactions with too low a nonce get immediately rejected. Transactions with too high a nonce get placed in the transaction pool queue. If transactions with nonces that fill the gap between the last valid nonce and the too high nonce are sent and the nonce sequence is complete, all the transactions in the sequence will get processed and mined. When ...


55

Due to advances in blockchain research, it was shown that significantly lower block times were possible and perhaps beneficial given the current connectivity of the internet. One of the potential risks of a low block time is a higher rate of orphaned blocks (competing blocks that do not make it into the main chain). To counter this, a GHOST protocol is used ...


49

Ethereum clients use a listener (TCP) port and a discovery (UDP) port, both on 30303 by default. If you need to run JSON-RPC, you'll also need TCP port 8545. Note that JSON-RPC port should not be opened to the outside world, because from there you can do admin operations. All client's ports can be customized from the default. If you want geth/eth to find ...


32

Update Mar 5 2017 The state cleaning was announced by Vitalik Buterin in the tweet State clearing 100% complete dated 23:07 Nov 29 2016. This time corresponds to block 2,718,436. The Clearing Contract can be found at 0xe9c9068240d8450da314f60804debfc194b72309. There was over 10,000 transactions involved in clearing the state. The first transaction to ...


29

Disclaimer: I run ethernodes.org There is a node explorer available at ethernodes.org which tries to estimate the number of nodes on the Ethereum network. The estimation is based on an active crawling process that recursively connects to a node and asks for its known peers. As this approach only reaches nodes that are accessible from the outside a second, ...


19

An enode is a way to describe an Ethereum node in the form of a URI. The hexadecimal node ID is encoded in the username portion of the URL, separated from the host by an @ sign. The hostname can only be given as an IP address, DNS domain names are not allowed. The port in the host name section is the TCP listening port. If the TCP and UDP (discovery) ports ...


18

Ethereum nodes (regardless of mining) need to have an accurate time, otherwise they will not be able to connect to peers and to the network (https://github.com/ethereum/go-ethereum/wiki/Connecting-to-the-network). Small differences in time are tolerated by nodes, but as one node's time gets further away from Coordinated UTC Time (per NTP), its number of ...


15

The Ethereum project originally laid out a timeline of milestones representative of different states of the ecosystem. In brief, they are: Frontier, a "wild west" stage with emphasized user caution Homestead, a more stable network which is no longer considered "beta" Metropolis, representing a diverse ecosystem of user-friendly software including Mist the ...


13

Expanding on Hudson Jameson's answer: "The hexadecimal node ID is encoded in the username portion of the URL" The username portion is a 512-bit public key that is used to verify communication came from a particular node on the network. More about the RLPx protocol used can be found here. Main parts of that: Node discovery and network formation are ...


13

How fast should be an internet connection to mine ETH? I'm currently on a ~ 10 Mbits/s download and 1 Mbits/s upload line and it is fast enough to mine the Ethereum blockchain while performing my usual Internet usage, including videos. In the daily chart below, the average data transfer rate seems to be between 200 and 358 Kbits/s. What about ping? My ...


12

By default, geth uses port 30303 for connection to other nodes. You may need to modify your firewall to allow traffic over this port. You can check your peer count as well as getting a list of peers when attached to the javascript console (geth attach). instance: Geth/v1.3.2/darwin/go1.5.1 datadir: /Users/home/Library/Ethereum coinbase: ...


11

You can tell parity to avoid scanning private IPs by simply running: parity --allow-ips public You can even fine-tune parity to do less aggressive peering: parity --allow-ips public --no-discovery --max-pending-peers 4 --min-peers 4 --max-peers 8 Or just block reserved IPs via iptables: iptables -A OUTPUT -p tcp -s 0/0 -d 0.0.0.0/8 -j DROP iptables -A ...


8

If you want to conceal your node's network address as the source of your transaction, and thereby preventing others to associate your network address with your Ethereum address, then you might want to hide your node behind Tor


8

For Geth you can connect to the public testnet (Morden) via: geth --testnet For other clients and for a full explanation plese refer to this wiki page: Ethereum wiki / Morden If you don't want to use the main public testnet you could use another public testnet, for that you have to specify at least these parameters: geth --networkid=12345 --genesis ...


8

There are two tools which track running ether nodes available: The etherchain node scanner. The ethernodes scanner.


8

Each of the geth instances will need to discover at least one other instance with a connection to the rest of your private network. You could nominate one (or more) of your geth instances as a bootnode that all the other instances first connect to in order to find other peers in your private network. To specify the bootnode that the non-bootnode instances ...


7

Keep an eye on Safemarket.io: it is already deployed live on the Frontier network. See getting started and releases. Open source at https://github.com/safemarket Subreddit at https://reddit.com/r/safemarket


7

Ethereum offers a Web3 JavaScript Ðapp API To make your Ðapp work on Ethereum, you can use the web3 object provided by the web3.js library. Under the hood it communicates to a local node through RPC calls. web3.js works with any Ethereum node, which exposes an RPC layer. You can use this library as jQuery in any HTML page. To use this is NodeJS web3 is ...


7

Mining itself doesn't use that much bandwidth, however syncing the block chain does. For syncing the blockchain using the --fast option it used about 12Gb(Initial sync) and about 100 mb the past 2 weeks. Mining itself used exactly 150mb for the past 14 days.


7

What you are searching for is a permissioned blockchain. Default node clients like geth, eth or pyehtereum does not implement this kind of functionality, so you need something more complex that implements a permission layer. Some good starting points are the Eris platform (my preferred, I like the overall architecture and the Docker approach) or the ...


7

Here's the code I've found so far that deals with syncing time. It uses pool.ntp.org:123 as the time syncing source. From Go Ethereum - p2p/discover/ntp.go, lines 48-65: func checkClockDrift() { drift, err := sntpDrift(ntpChecks) if err != nil { return } if drift < -driftThreshold || drift > driftThreshold { warning := ...


7

I had a similar problem like you. Hetzner noticed that the abuse warning was triggered because the host tried to send tpc/udp packets to private network addresses (RFC1918). In order to avoid getting flagged, you can setup firewall rules blocking outgoing packets to RFC1918 networks. Example using iptables: iptables -A OUTPUT -p tcp -s 0/0 -d 10.0.0.0/8 -...


7

On a practical note, just remove your blockchain and synchronize again. The blockchain bloat has been removed already. Stop your node and/or close your Ethereum wallet. Remove the chaindata. for parity it is in ~/.parity/906a34e69aec8c0d/* for geth it is in ~/.ethereum/chaindata/* Resync the whole chain (this is faster than waiting to get through the ...


7

You can see the connected peers by typing admin.peers in the Geth console. The maximum number of peers is set using the -maxpeers n flag in Geth. There is a discovery process based on Kademlia for finding nodes, then a handshaking process by which they determine which devp2p protocols they support (Eth, Bzz, Shh). The P2P layer monitors each node's quality ...


6

Summary I would have expected that the bootnodes parameters would allow node 2 and node 3 to find node 1, node 2 and node 3 and then for all the nodes to retain their peer connections. From Henrique Barcelos's issue, it seems that this configuration is not stable in a private network running the nodes in a VM. The alternative of using static-nodes.json ...


6

Rootstock would be the main example, check out their site for more info http://www.rootstock.io/ They use bitcoin instead of using their own coin, but they are not as far along with the smart contracts as Ethereum is, they just recently got their test net up.


6

I knew that Ethereum is ASIC resistant, Resistant to the technology available, but not fundamentally, provably resistant forever. It's always been theoretically possible to manufacture an ASIC able to run Ethash, it's just the cost of the memory required has so far made it economically implausible. So no one bothered. so how would this potential miner ...


5

Ethereum is not currently sharded. As we work towards a scalability solution, the state will be sharded and validators assigned to shards on a dynamic basis. Note it will be proof of stake, so no mining. The details are still very much being sorted out.


5

Update. As of this morning (July 31, 2017), there were 21,349 nodes, according to Ethernodes. The Etherchain Node scanner which 5chdn listed as the other nodes tracker in his Feb. 2016 answer (https://etherchain.org/nodes) no longer seems to work. Etherchain's "Node Explorer" (in the Tools menu) now redirects to Ethernodes.org. If you would like to see ...


5

On some rare setups UPnP lookup fails in a strange way that blocks up Geth. It was already fixed on develop and will hopefully land soon. Until that point if you experience this you might disable NAT altogether and see if that solves the issue: --nat=none


Only top voted, non community-wiki answers of a minimum length are eligible