Commit Graph
28 Commits
Author SHA1 Message Date
Matthias Radestock f25696c245 prevent premature gc of peers from topology
Topology gossip can be received on a connection before that connection
has been marked as 'established'. If we do not include unestablished
connections in topology gossip, then parts of the topology can be
removed by gc, since they are deemed unreachable, which can cause
subsequent incremental topology gossips to be rejected due to them
containing references to peers that have been removed by the gc.

Including unestablished connections in topology gossip requires:

- removing the check for 'established' connections in the encoding of
  peers for topology gossip,
- adding the 'established' flag to the internal representation of
  remote connections,
- adding the 'established' flag to to encoding of connections in
  topology gossip,
- treating the *addition* of a connection as an update to the local
  peer.

The latter entails

- bumping the peer version on connection addition (as well as on
  marking 'established' as previously),
- bumping the peer version *unconditionally* on connection deletion
  (rather than only when the connection was 'established', as
  previously),
- moving the initial sending of complete topology on the connection,
  and the broadcasting of a topology update containing the two peers
  at the ends of the connection, from the connection 'established'
  logic to the connection addition logic,
- broadcasting just an topology update for the local peer when a
  connection gets marked as 'established',
- broadcasting a topology update for the local peer *unconditionally*
  when a connection is removed (rather than only doing this when the
  connection was 'established', as previously).
2015-02-01 16:52:39 +00:00
Bryan Boreham 5dc9b085a0 Replace previous topology communication with gossip-based mechanism 2015-01-27 12:45:40 +00:00
Matthias Radestock 824286d382 shrink "improved" topology update
When an update contains an older version of a peer we know about,
there is no point in including our better version in the "improved"
update, since we will have told our neighbours about that already and
any race conditions are taken care off by the periodic sending of the
complete topology.
2015-01-25 12:27:45 +00:00
Matthias Radestock af6e5c3438 move more of the topology docs into their own section
and some cosmetics
2015-01-25 12:21:02 +00:00
Matthias Radestock 1dde9bfe0b cosmetic 2015-01-23 16:58:59 +00:00
Matthias Radestock c6a684a741 fix some typos 2015-01-16 17:24:03 +00:00
Matthias Radestock a7ed1f0e9c less willing 2015-01-16 16:06:09 +00:00
Matthias Radestock 1890662f65 FetchAll is no longer sent explicitly on ConnectionEstablished
though it is in fact still sent straight away as part of initialsing
the FetchAll timer
2015-01-16 16:02:59 +00:00
Bryan Boreham 18184017ec Minor re-wording after review comments 2015-01-16 15:00:46 +00:00
Bryan Boreham bddd0b5ea4 Update FetchAll description to reflect changes in #349 2015-01-16 13:25:03 +00:00
Bryan Boreham 65fd2450ae Added description of topology communication 2015-01-16 12:24:05 +00:00
Matthias Radestock e2ec460752 feed password to weave via env var, possibly via a file
The latter is the most secure route since it keeps the password
completely out of any command lines, and the permissions on the file
can be very restrictive, e.g. 0400.

It would be somewhat nicer if the password file contained just
    <password>
rather than
    WEAVE_PASSWORD=<password>
but then we'd have to transit the password via a temporary file with
0600 permissions.
2014-12-20 01:22:59 +00:00
Matthias Radestock eba1d95ddb add anchor for crypto 2014-12-15 19:02:44 +00:00
David Wragg 9f25726bc2 Typos 2014-12-15 13:35:35 +00:00
Matthias Radestock b1bde561bd fix typo 2014-12-13 10:06:40 +00:00
Matthias Radestock 6b741bef27 state that nonce prepending is normal in NaCl 2014-12-12 18:50:09 +00:00
Matthias Radestock 5ab6d7bd1f cosmetic 2014-12-12 18:46:21 +00:00
Matthias Radestock ee19e39712 make it clear that key pairs are created per connection 2014-12-12 18:45:36 +00:00
Matthias Radestock b7d129b353 fix typo 2014-12-12 18:41:40 +00:00
Matthias Radestock f99fd9b8fb some rewording and some links 2014-12-12 18:29:15 +00:00
Matthias Radestock e04e2ab769 Merge branch 'master' into 40_crypto_docs
Conflicts:
	site/how-it-works.md
2014-12-12 18:12:25 +00:00
Matthias Radestock d012b0d5ce grrr 2014-12-12 18:10:22 +00:00
Matthias Radestock 3c52afb11e oops 2014-12-12 18:07:32 +00:00
Matthias Radestock 7b0d2cdeda cosmetic 2014-12-12 18:03:52 +00:00
Matthias Radestock 4c9cf3a0fe move explanation of peers and peer names
...plus some related doc shuffling
2014-12-12 17:59:41 +00:00
Matthias Radestock 2a1316553c simplify encapsulation diagrams
by dropping the standard packet headers
2014-12-12 17:44:23 +00:00
Matthias Radestock 4f85b4cb85 explain crypto
and encapsulation
2014-12-10 18:41:35 +00:00
Michael Bridgen a1badfccc7 Put gh-pages branch in site/
git read-tree -u --prefix=site/ gh-pages

This is so we can work on code and docs at the same time.
2014-11-14 11:55:07 +00:00