remove support for v1 introducer #2784

Closed
opened 2016-05-05 02:03:03 +00:00 by warner · 8 comments

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.

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.
warner added the
code-network
normal
task
1.11.0
labels 2016-05-05 02:03:03 +00:00
warner added this to the eventually milestone 2016-05-05 02:03:03 +00:00
warner self-assigned this 2016-05-05 02:03:03 +00:00
daira commented 2016-05-10 16:21:04 +00:00
Owner

I'm fine with making this change for 1.12.0.

I'm fine with making this change for 1.12.0.
tahoe-lafs modified the milestone from eventually to 1.12.0 2016-05-10 16:21:04 +00:00
Brian Warner <warner@lothar.com> commented 2016-05-10 20:04:19 +00:00
Owner

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.
In [155ca03/trunk](/tahoe-lafs/trac-2024-07-25/commit/155ca031749e65a33e78fad7f055225f7736e4a7): ``` 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. ```
dawuud commented 2016-06-02 14:53:09 +00:00
Owner

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

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`
dawuud commented 2016-06-02 15:22:42 +00:00
Owner

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

After much butchering of the tests the [SystemTest](wiki/SystemTest) now passes... but this definitely needs review ;-p
Author

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.

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.
Author

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

moving most tickets from 1.12 to 1.13 so we can release 1.12 with magic-folders
warner modified the milestone from 1.12.0 to 1.13.0 2016-06-28 18:20:37 +00:00
Brian Warner <warner@lothar.com> commented 2016-07-05 22:33:19 +00:00
Owner

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.
In [c64ff7b/trunk](/tahoe-lafs/trac-2024-07-25/commit/c64ff7b310ea4f6eef1dfed99fc10ce443a38574): ``` 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. ```
Brian Warner <warner@lothar.com> commented 2016-07-05 22:33:20 +00:00
Owner

In 78810d5/trunk:

Merge branch '2784-remove-v1-introducer'

Closes PR #289
Closes ticket:2784
In [78810d5/trunk](/tahoe-lafs/trac-2024-07-25/commit/78810d585148e35b1c481c7ad9b8cefc92e6357a): ``` Merge branch '2784-remove-v1-introducer' Closes PR #289 Closes ticket:2784 ```
tahoe-lafs added the
fixed
label 2016-07-05 22:33:20 +00:00
Brian Warner <warner@lothar.com> closed this issue 2016-07-05 22:33:20 +00:00
warner modified the milestone from 1.13.0 to 1.12.0 2016-07-05 22:33:40 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#2784
No description provided.