-
Notifications
You must be signed in to change notification settings - Fork 7
Light Client Public Test
On 30/06/2016, the public test phase for the Ethereum Light Client has been started. During this period users, application developers and alternative client developers will already have a chance to evaluate the LES/1 protocol and its Go Ethereum implementation while we're shaving off the remaining rough edges and implementing the missing parts. The protocol and API implementation is mostly working but not thoroughly tested yet so expect some surprises, please be careful (try on the testnet or do not operate with too much money is you're using it on the mainnet) and if something is not working as expected, please report it on the https://gitter.im/ethereum/light-client gitter channel after checking the Known Bugs and Missing Features and Recent Updates sections.
*** Compiling and running
- download the https://github.com/zsfelfoldi/go-ethereum/tree/light-stable branch
- build it with Go 1.6 (won't compile with earlier versions)
- add the "--light" flag for light client mode
- you can also run it on the testnet by also specifying the "--testnet" flag
- you can run the light client with the same (default) data directory you use with the normal client, it uses a separate "lightchaindata" database directory instead of the standard "chaindata" so it won't interfere with your regular chain database (can't run the two simultaneously with the same datadir though).
- expect a 10-20 minute sync time for the entire chain, <1 minute for a week's amount of blocks
*** LES servers
LES is an asymmetrical (client-server) protocol which needs to download data from a regular "full" node. After the official release of a LES-capable Geth version, hopefully many full nodes will offer LES services with a limited bandwidth that ensures that it doesn't interfere with their normal operation. In a subsequent release a micropayment option is planned that can buy a higher priority/bandwidth for clients and provide incentive for the servers. In the meantime though, there are no user-operated LES servers available, and also our current peer discovery mechanism needs to be improved (work in progress) in order for clients to be able to reliably find servers.
For the test period, we have set up two test servers (one for mainnet, one for testnet) and hardwired their addresses to the client test version so that in light mode, the appropriate server is added to the peer set by default and automatic discovery is disabled. If you'd like to run your own LES server (for a private net, for example), that's also possible. If you run this version of Geth in the regular "full client" mode, it automatically acts as an LES server, you just need to add it as a peer manually to the light client. You can run the server and client on the same machine too, in this case specify a different port and data directory for them.
If a light client has no server attached or the server is too busy, it cannot read anything from the chain/state so it is possible that requests get blocked. Every request can be cancelled by closing and reopening the RPC channel. In the current version the console has a 5 second timeout (will be user configurable in later versions).