Skip to content
This repository has been archived by the owner on Aug 13, 2021. It is now read-only.

[EPIC] Cross-client Swarm implementation #50

Open
nolash opened this issue Jun 19, 2019 · 0 comments
Open

[EPIC] Cross-client Swarm implementation #50

nolash opened this issue Jun 19, 2019 · 0 comments

Comments

@nolash
Copy link

nolash commented Jun 19, 2019

Owner

Swarm: Louis Holbrook @nolash

Stakeholder point of contact

Status: Oskar Thorén @oskarth

Rationale

The best proof of good architecture is the ability to create multiple implmentations of it.

Dependencies

Written specs, stored in https://github.com/ethersphere/node-implementer-spec

[ ] - Swarm overlay address
[ ] - Bzz handshake protocol
[ ] - PSS addressing
[ ] - PSS protocol
[ ] - PSS message handling
[ ] - Kademlia concepts
[ ] - Hive (peer suggestion)
[ ] - Discovery protocol
[ ] - Forwarding
[ ] - Stream protocol
[ ] - Retrieval protocol (if not included in stream protocol)

Schematic overview:

(Please check link image might be cached: http://holbrook.no/tmp/specdep.svg)

Missing network test dependency  graph

Description

It should be possible to implement swarm nodes using other platforms. Enabling this can lead to wider adoption both in sense of community and platforms/devices.

It can also increase of quality of development of Swarm concepts in general, as they will be subject to more scrutiny and peer review, along with trial by actual reification.

Most importantly it is a preemptive step against possible cross-client incompatibility that may arise from a independent third-party implementer working on basis of best assumption.

Context

Currently no coherent and exhaustive source of truth exists for concepts and specifications of the swarm architecture, public nor private. This increases the possibility of misconceptions and faulty implementation, both on the part of third parties and the Swarm team alike.

Much of the required documentation is already written in one form or another, and needs only be adapted for the swarm node implementer role.

Issues

Collect and adapt existing documentation

Acceptance criteria

Each implementation step in prototype should be able to interface with the main go swarm implementation.

Proof

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant