Working groups

Eric Tang edited this page Nov 6, 2017 · 28 revisions

Swarm working groups

For further development, focused working groups have been identified:

  1. Network testing and simulation framework
  2. pss messaging and communication tools
  3. Streaming
  4. Swap swear and swindle - contract development
  5. DB support

Network testing and simulation framework

Goals

  • Set up network models, to control, measure, test, benchmark network behaviour
  • Provide single peer with mock peer 'network' for protocol (module) unit testing
  • Provide various simulated test network environments with the same testing interface
  • HTTP server with REST API to the network controllers to serve as backend to cluster dashboards, simulations, visualisations
  • Visualise network and topology health, status, metrics

Status - 2nd October 2017

Next Steps:

Resources

Contributors

  • Lewis Marshall @lmars
  • Fabio Barone @holisticode

pss messaging and communication tools

roadmap: https://github.com/ethersphere/go-ethereum/wiki/Pss-roadmap dedicated gitter channel: https://gitter.im/ethersphere/pss

Goals

  • Enable messaging between nodes that are not directly connected through IP.
  • Allow full, partial and no disclosure of addresses of communicating nodes. ("luminosity")
  • Asymmetric and symmetric encryption using ephemeral keys.
  • Transparent implementation of devp2p protocols over pss.
  • Decentralized storage of undelivered messages. (mailserver)
  • Create a fully decentralized end-user messaging platform that's end-to-end encrypted.

Status

  • Implements swarm kademlia routing.
  • Address "luminosity" can be defined bytewise, from 0 (whisper routing) to 32 (full swarm address disclosed). How much of a node's address which is revealed / known to its individual peers is fully at the node's own discretion.
  • Asymmetric messaging can be performed using only the node's public key and a topic.
  • Symmetric messaging using a pair of ephemeral symmetric keys, each for outgoing and incoming messages.
  • Support for arbitrary or handshake-negotiated symmetric keys
  • Asymmetric and symmetric keys can be renewed/replaced at will.
  • Uses swarm DPA for caching of messages, used for flood prevention and to prevent backwards routing. This is possibly a preliminary step towards decentralized message storage for "mailserver" functionality.
  • virtual devp2p protocol over pss, same and separate process

Next steps

see roadmap https://github.com/ethersphere/go-ethereum/wiki/Pss-roadmap

  1. Rewrite pss js lib
  2. Full-fledged traffic testing and benchmarking using network testing framework (depends on functional network testing framework)
  3. MERGE TO ETHEREUM MASTER
  4. Update go ethereum p2p docs
  5. Identify and start work on 2-3 real-world pilot cases for production-level implementation of pss.
  6. Browser/js based messaging application (in time for Cancun??)
  7. Implement visualizations for different pss payloads in the network testing framework visualizer
  8. Mailserver functionality (depends on offchain resource update framework)

Resources

Contributors

  • Louis Holbrook: @nolash
  • Vlad Gluhovsky: @gluk56
  • Viktor Tron: @zelig
  • Guillaume Ballet: @gballet
  • Status.im https://status.im/
  • Ricardo Geraldes @rgeraldes
  • Fabio Barone @holisticode

Streaming

Goals

Low level swarm support for p2p data streams.

Status

The majority of the additions to swarm are in the livepeer package and the mediaserver package. The mediaserver package serves as a bridge to our LPMS media server at https://github.com/livepeer/lpms.

We updated the swarm storage package because we had to add Stream and StopStream to the CloudStore interface (in netstore file), which forwarder implements. And this is how forwarder routes stream and stopstream requests around the network.

We use API package because we have to add ffmpegpath and RTMPport to the config object.

We added a streamDB to the networking package, and added message types to support streaming to the protocol.

We added a streaming package which contains a lot of the logic around streaming.

Scope for v0.3

  • Support data streams in Swarm
  • Add StreamRequestMsg and StreamStopMsg into the Bzz protocol
  • Expose an io.Writer for writing stream data, and io.Reader for reading stream data

Next Steps

  • Decide on interface to support video

Contributors

  • Doug Petkanics @dob
  • Eric Tang @ericxtang
  • Zahoor @jmozah
  • Vik @zelig

Swap swear and swindle - contract development

Goal

  • Implement the incentives layer of the p2p network
  • Provide storage insurance in swarm
  • Offer litigation and mitigation mechanisms for ensuring service quality and provide trust
  • Platform for digital services economy

Status 29th August 2017

  • Draft version of Swap, Swear and Swindle (sw^3) paper crafted
  • swap and chequebook v0 already in master since POC2
  • initial stab at courtroom/swear/swindle component

Next steps

  • Iterate on, refine and publish paper
  • Implement modules of sw^3:
  • related components:
    • provable data exchange
    • SMASH/CRASH proof of custody
    • resource update notifications

Resources

Contributors

  • Viktor Trón @zelig
  • Oren Sokolowsky @orenyodfat
  • Aron Fischer @homotopycolimit
  • Daniel Nagy @nagydani
  • Fred Tibbles @MrTibbles
  • Alexey Akhunov @
  • Fabio Barone @holisticode

Db support (POT and indexing)

Goals

  • Provide DB functionality on top of swarm
  • POT serialisation,use POT for Manifest encoding
  • Network protocol for index lookups with delegated traversal and pot proof response
  • Blockchain and ethereum state on swarm
  • Provable object traversal for knowledge graph proofs
  • Use pot for swarm storage layer
  • related components to implement:
    • resource update notifications of offchain mutability (sub-block ENS)
    • provable data exchange

Status

Next steps

  • abstract out the potbin iterator
  • type signatures
  • design and implement canonical serialisation for pot
  • semantic inclusion proofs
  • frequency (recency) sensitive insertion
  • serialisation for db: persistence
  • pruning
  • encryption, obfuscation

Contributors

  • Zahoor Mohamed @jmozah
  • Viktor Tron @zelig
  • Elad Verbin @eladve
  • Samuli @haadcode
  • Louis Holbrook @nolash, Lewis Marshall @lmars (JAAK)
  • Sorabh, Mayumi, David (WOLK)

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.