swarms/ideas/254-ultra-light-client/README.md

106 lines
2.7 KiB
Markdown

---
id: 254-ultra-light-client
title: Integration of ULC in Status
status: Draft
created: 2018-05-02
category: research
lead-contributor: b00ris
contributors:
- b00ris
- jeka
- themue
- zsfelfoldi (external)
exit-criteria: yes
success-metrics: yes
clear-roles: yes
future-iterations: yes
---
## 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
- Lead Contributor: @b00ris
- Testing & Evaluation: TBD
- Contributor: @jeka
- Contributor: @themue
- 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
Goal Date: 2018-07-02
Working board: https://github.com/status-im/go-ethereum/projects/5
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
### Iteration 2018-05-21 - 2018-06-04
Goal Date: 2018-06-04
Description:
- [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`
### Iteration 2018-06-04 - 2018-06-18
Goal Date: 2018-06-18
Description:
[ULC milestone 2018-06-04](https://github.com/status-im/go-ethereum/milestone/1)
### Iteration 2018-06-18 - 2018-07-02
Goal Date: 2018-07-02
Description:
[ULC milestone 2018-06-18](https://github.com/status-im/go-ethereum/milestone/2)
## 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/).