From d247e643ae5f6eee4cc095b6c8e2b3ea9247af15 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Mon, 15 Jan 2018 18:44:41 +0100 Subject: [PATCH] Minor: tweaks to the discussion of network parameters and network map. --- docs/source/network-map.rst | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/source/network-map.rst b/docs/source/network-map.rst index f6eca336f4..160f4c0401 100644 --- a/docs/source/network-map.rst +++ b/docs/source/network-map.rst @@ -2,7 +2,7 @@ Network Map =========== The network map is a collection of signed ``NodeInfo`` objects (signed by the node it represents and thus tamper-proof) -forming the set of reachable nodes in a compatbility zone. A node can receive these objects from two sources: +forming the set of reachable nodes in a compatibility zone. A node can receive these objects from two sources: 1. The HTTP network map service if the ``compatibilityZoneURL`` config key is specified. 2. The ``additional-node-infos`` directory within the node's directory. @@ -13,7 +13,7 @@ HTTP network map service If the node is configured with the ``compatibilityZoneURL`` config then it first uploads its own signed ``NodeInfo`` to the server (and each time it changes on startup) and then proceeds to download the entire network map. The network map consists of a list of ``NodeInfo`` hashes. The node periodically polls for the network map (based on the HTTP cache expiry -header) and any new hash entries are downloaded and cached. Entries which no longer exist are deleted from the node's cache. +header) and any new entries are downloaded and cached. Entries which no longer exist are deleted from the node's cache. The set of REST end-points for the network map service are as follows. @@ -35,7 +35,7 @@ The ``additional-node-infos`` directory Alongside the HTTP network map service, or as a replacement if the node isn't connected to one, the node polls the contents of the ``additional-node-infos`` directory located in its base directory. Each file is expected to be the same -signed ``NodeInfo`` object that the network map service vends. These are automtically added to the node's cache and can +signed ``NodeInfo`` object that the network map service vends. These are automatically added to the node's cache and can be used to supplement or replace the HTTP network map. If the same node is advertised through both mechanisms then the latest one is taken. @@ -46,7 +46,7 @@ of every node that's part of this network. Network parameters ------------------ -Network parameters are a set of values that every node participating in the network needs to agree on and use to +Network parameters are a set of values that every node participating in the zone needs to agree on and use to correctly interoperate with each other. If the node is using the HTTP network map service then on first startup it will download the signed network parameters, cache it in a ``network-parameters`` file and apply them on the node. @@ -54,7 +54,7 @@ download the signed network parameters, cache it in a ``network-parameters`` fil then the node will automatically shutdown. Resolution to this is to delete the incorrect file and restart the node so that the parameters can be downloaded again. -.. note:: A future release will support the notion of network parameters changes. +.. note:: A future release will support the notion of phased rollout of network parameter changes. If the node isn't using a HTTP network map service then it's expected the signed file is provided by some other means. For such a scenario there is the network bootstrapper tool which in addition to generating the network parameters file @@ -66,13 +66,14 @@ The current set of network parameters: not start. :notaries: List of identity and validation type (either validating or non-validating) of the notaries which are permitted in the compatibility zone. -:maxMessageSize: Maximum allowed P2P message size sent over the wire in bytes. Any message larger than this will be - split up. -:maxTransactionSize: Maximum permitted transaction size in bytes. +:maxMessageSize: Maximum allowed size in bytes of an individual message sent over the wire. Note that attachments are + a special case and may be fragmented for streaming transfer, however, an individual transaction or flow message + may not be larger than this value. :modifiedTime: The time when the network parameters were last modified by the compatibility zone operator. :epoch: Version number of the network parameters. Starting from 1, this will always increment whenever any of the parameters change. -.. note:: ``maxTransactionSize`` is currently not enforced in the node, but will be in a later release. - -More parameters may be added in future releases. +More parameters will be added in future releases to regulate things like allowed port numbers, how long a node can be +offline before it is evicted from the zone, whether or not IPv6 connectivity is required for zone members, required +cryptographic algorithms and rollout schedules (e.g. for moving to post quantum cryptography), parameters related to +SGX and so on.