2018-05-18 09:40:46 +00:00
|
|
|
---
|
|
|
|
id: 254-ultra-light-client
|
|
|
|
title: Integration of ULC in Status
|
|
|
|
status: Draft
|
|
|
|
created: 2018-05-02
|
|
|
|
category: research
|
2018-05-28 19:50:33 +00:00
|
|
|
lead-contributor: b00ris
|
2018-05-18 09:40:46 +00:00
|
|
|
contributors:
|
|
|
|
- b00ris
|
2018-05-24 11:35:00 +00:00
|
|
|
- jeka
|
|
|
|
- themue
|
2018-05-18 09:40:46 +00:00
|
|
|
- zsfelfoldi (external)
|
|
|
|
exit-criteria: yes
|
|
|
|
success-metrics: yes
|
2018-05-24 11:35:00 +00:00
|
|
|
clear-roles: yes
|
2018-05-28 19:50:33 +00:00
|
|
|
future-iterations: yes
|
2018-05-18 09:40:46 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
## Preamble
|
|
|
|
|
|
|
|
Idea: 254-ultra-light-client
|
|
|
|
Title: Integration of ULC in Status
|
|
|
|
Status: Draft
|
|
|
|
Created: 2018-05-02
|
|
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
|
|
Current LES is not yet optimized for ultra-light devices like mobile phones. So in the first step introduce
|
|
|
|
the ULC addressing this kind of clients.
|
|
|
|
|
|
|
|
## Swarm Participants
|
|
|
|
|
2018-05-24 11:35:00 +00:00
|
|
|
- Lead Contributor: @b00ris
|
2018-05-18 09:40:46 +00:00
|
|
|
- Testing & Evaluation: TBD
|
|
|
|
- Contributor: @jeka
|
2018-05-24 11:35:00 +00:00
|
|
|
- Contributor: @themue
|
2018-05-18 09:40:46 +00:00
|
|
|
- PM: @zsfelfoldi (external)
|
|
|
|
- UX (if relevant):
|
|
|
|
|
|
|
|
## Product Overview
|
|
|
|
|
|
|
|
Current LES is not optimized for usage on mobile phones. So Status is using Infura with all its assets and
|
|
|
|
drawbacks. ULC is addressing ultra-light clients and distribution without dependency to central providers.
|
|
|
|
Instead a network of trusted LES nodes acts as counterpart for the protocol.
|
|
|
|
|
|
|
|
So Status is supporting the development and testing of ULC to accelerate integration into `go-ethereum` as
|
|
|
|
well as into Status itself.
|
|
|
|
|
|
|
|
### Product Description
|
|
|
|
|
|
|
|
- Research of ULC design
|
|
|
|
- Definition and implementation of ULC
|
|
|
|
- Integrate ULC in `statusd` and the `lib`
|
|
|
|
- Documentation
|
|
|
|
|
|
|
|
### Minimum Viable Product
|
|
|
|
|
2018-05-28 19:50:33 +00:00
|
|
|
Goal Date: 2018-07-02
|
|
|
|
Working board: https://github.com/status-im/go-ethereum/projects/5
|
2018-05-18 09:40:46 +00:00
|
|
|
|
|
|
|
Description:
|
|
|
|
|
|
|
|
- [ ] New Ultra Light Client mode is added to patched LES
|
|
|
|
- [ ] Integrate ULC with `status-go` with Status nodes as trusted nodes
|
|
|
|
- [ ] Collect metrics (CPU, mem, disk, network I/O) when starting with a branch new install and after 1h of inactivity
|
|
|
|
- [ ] Keep battery and network consumption at least as low as today with Infura
|
|
|
|
|
2018-05-28 19:50:33 +00:00
|
|
|
### Iteration 2018-05-21 - 2018-06-04
|
2018-05-18 09:40:46 +00:00
|
|
|
|
2018-05-28 19:50:33 +00:00
|
|
|
Goal Date: 2018-06-04
|
|
|
|
|
|
|
|
Description:
|
|
|
|
|
2018-06-13 11:56:01 +00:00
|
|
|
- [x] Fix [downloader N/M validation](https://github.com/status-im/go-ethereum/issues/51)
|
|
|
|
- [x] Fix [announce type on handshake](https://github.com/status-im/go-ethereum/issues/55)
|
|
|
|
- [x] [ULC config refactoring](https://github.com/status-im/go-ethereum/issues/52)
|
|
|
|
- [x] PR to `go-ethereum`
|
2018-05-28 19:50:33 +00:00
|
|
|
|
|
|
|
### Iteration 2018-06-04 - 2018-06-18
|
|
|
|
|
|
|
|
Goal Date: 2018-06-18
|
2018-05-18 09:40:46 +00:00
|
|
|
|
|
|
|
Description:
|
2018-06-13 11:56:01 +00:00
|
|
|
[ULC milestone 2018-06-04](https://github.com/status-im/go-ethereum/milestone/1)
|
2018-05-18 09:40:46 +00:00
|
|
|
|
2018-05-28 19:50:33 +00:00
|
|
|
|
|
|
|
### Iteration 2018-06-18 - 2018-07-02
|
|
|
|
|
|
|
|
Goal Date: 2018-07-02
|
|
|
|
|
|
|
|
Description:
|
2018-06-13 11:56:01 +00:00
|
|
|
[ULC milestone 2018-06-18](https://github.com/status-im/go-ethereum/milestone/2)
|
2018-05-18 09:40:46 +00:00
|
|
|
|
|
|
|
## Artifacts
|
|
|
|
|
|
|
|
- None
|
|
|
|
|
|
|
|
## Success Metrics
|
|
|
|
|
|
|
|
LES of `go-ethereum` is extended to use ULC with a similar or better use of bandwidth and CPU as Infura.
|
|
|
|
|
|
|
|
## Copyright
|
|
|
|
|
|
|
|
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
|
|
|
|
|