Peer to Peer Network: Lead Pawel Szulc (Unlicensed)
- Description The RChain system operates over a peer-to-peer network. RNode supports the creation and maintenance of this network.
- Reference Communications Module Specification
- Acceptance criteria
- RNodes can send messages between one another as governed by the TcpTransportLayer
- TcpTransportLayer
when doing a round trip to remote peer
when everything is fine
- should send and receive the message
when response takes to long
- should fail with a timeout
when there is no response body
- should fail with a communication error
when peer is not listening
- should fail with peer unavailable error
when there was a peer-side error
- should fail with an internal communication error
when sending a message
- should deliver the message
- should not wait for a response
- should wait for message being delivered (pending)
when brodacasting a message
- should send the message to all peers
when shutting down
when doing a round trip
- should not send the message
when sending a message
- should not send the message
when broadcasting a message
- should not send any messages
- The RNode identity is separate from it's validator identity
- To send a deployment to validators users need to know the validator's identification (the validator's public key)
- Alternatively, there is a pipeline for each shard that receives inbound deployments
- Possibly similar what happens on Ethereum and/or Metamask
- RNodes communicate via TLS
- They can reliably and consistently send messages across the network
- They can support the broadcasting of messages across the network
- They can support messages of any size (message chunking and queueing)
- RNode can bootstrap from any other node
- RNodes can discover and connect to peersNodes remember their peers
- RNodes remember their peers when running
- RNodes remember their peers after restart
- RNode can start in standalone mode
- If no certificate is provided, system generates one
Platform support
- Description - The RNode software operates on a variety of platforms
- Reference Node Packaging, Distribution and Installation
- Acceptance criteria:
- RNode installs and runs on
- Linux
- MacOS with installation of JRE and libsodium dependencies
- Windows using Ubuntu/Centos VM in Hyper-V
Installation
- Description - The RNode software is available in a variety of common formats for installation.
- Reference Node Packaging, Distribution and Installation
- Acceptance criteria:
- Debian packages (.deb)
- Rpm packages (.rpm)
- Tarballs (.tgz)
- Docker images for Linux and Mac
Metric for tracking success
What is special about this release?
Are we launching anything different than what’s out there? If so, what is it and how is it different? Use the ‘peel the onion’ approach, “there are three reasons why this feature is unique / 1 short sentence for each / 3-4 sentences about each vs. immediately going deep into the feature.
Are we doing something differently? If so, why are we doing it this way?
If developers need to do something new/different to take advantage of this launch we should explain why we’re doing it differently to get them to buy into it. For example, why do we need a new language and why is it implemented in a specific way?
Before these features were available, what were developers able to do with RChain?
Provide an overview of what developers were able to do without these new features. Please write this from the end user perspective.
After these features launch, what will developers be able (and not able) to do with RChain?
Provide an overview of what developers will be able to do after the new features launch. Please write this from the end user perspective. For example, after we launch the SDK dApps developers can run the RhoVM to create their first dApp on RChain.
Description of release packaging
Where do developers go to learn more and get started?
CTA and link to the appropriate spot that marketing needs to point developers to.
Where will bugs be filed?
Where do developers go for support? What is the SLA? Who is on point?
What license will this be released under?