#2784 closed task (fixed)

remove support for v1 introducer

Reported by: warner Owned by: warner
Priority: normal Milestone: 1.12.0
Component: code-network Version: 1.11.0
Keywords: Cc:
Launchpad Bug:

Description

In Tahoe-LAFS-1.10.0 (May 2013), we created a new Introducer protocol which allows nodes to publish signed, extensible, dictionary-based announcements. Servers are known by their Ed25519 verifying key, rather than their Foolscap TubID (a hash of a TLS certificate).

To avoid a grid-wide "flag day", all three moving pieces (the sending client, the Introducer, and the receiving client) smoothly tolerate old-style "v1" messages, and peers which don't know how to speak the v2 protocol. New clients who discover they're talking to an old Introducer will send v1 messages instead of v2. New introducers who receive v1 messages from old clients will deliver them as unsigned v2 messages to new clients, and as v1 messages to old clients.

Now that 1.10.1 has been available for three years, it's time to remove support for the v1 protocol. This will delete maybe 30% of the code from src/allmydata/introducer/. Clients will unconditionally send and expect v2 messages, and the Introducer will only enable v2-capable clients to connect and subscribe to hear announcements.

Change History (9)

comment:1 Changed at 2016-05-10T16:21:04Z by daira

  • Milestone changed from eventually to 1.12.0

I'm fine with making this change for 1.12.0.

comment:2 Changed at 2016-05-10T20:04:19Z by Brian Warner <warner@…>

In 155ca03/trunk:

test_introducer: cleanups

  • Use tempfile for cache to avoid collisions
  • Fix pyflakes complaints
  • Remove test_client_cache_2, which exercises unsigned announcements. These are scheduled to be removed soon (see ticket:2784) and don't need to be tested.

comment:3 Changed at 2016-06-02T14:53:09Z by dawuud

I removed the old v1 introducer and and attempted to fix the test_introducer tests. I managed to fix all but one test; here in my dev branch

https://github.com/david415/tahoe-lafs/tree/2784.remove_v1_introducer.0

https://github.com/tahoe-lafs/tahoe-lafs/pull/289/files

this test fails allmydata.test.test_introducer.SystemTest.test_system_v2_server

comment:4 Changed at 2016-06-02T15:22:42Z by dawuud

After much butchering of the tests the SystemTest? now passes... but this definitely needs review ;-p

comment:5 Changed at 2016-06-16T23:50:10Z by warner

Thanks for diving into this. I made a start at it a few weeks ago, but got stuck too early to be worth pushing anywhere. I'll see if I can review/build-upon your branch.

comment:6 Changed at 2016-06-28T18:20:37Z by warner

  • Milestone changed from 1.12.0 to 1.13.0

moving most tickets from 1.12 to 1.13 so we can release 1.12 with magic-folders

comment:7 Changed at 2016-07-05T22:33:19Z by Brian Warner <warner@…>

In c64ff7b/trunk:

more v1 removal cleanup

Historical note: V2 introducers have been around for three years
now (released in 1.10.0), so it's time to drop v1. This branch removes a
lot of fallback code, and tests which exercised it. refs ticket:2784

This patch removes some now-unused code: v1-related support functions on
the client, "stub-client" handlers, and v1-tolerant remote methods on
the server. The unit tests have been cleaned up a bit too, now that
there are fewer cases to exercise.

comment:8 Changed at 2016-07-05T22:33:20Z by Brian Warner <warner@…>

  • Resolution set to fixed
  • Status changed from new to closed

In 78810d5/trunk:

Merge branch '2784-remove-v1-introducer'

Closes PR #289
Closes ticket:2784

comment:9 Changed at 2016-07-05T22:33:40Z by warner

  • Milestone changed from 1.13.0 to 1.12.0
Note: See TracTickets for help on using tickets.