diff options
| author | eunhhu <[email protected]> | 2026-09-29 16:55:04 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-29 16:55:04 +0100 |
| commit | c494ec7a37ff4863d420b4a9ccbe1df93e88de2d (patch) | |
| tree | 5d0ef99f9368fdabfb48c34e322d881010a06dbc /docs/design | |
| parent | 2a9960f086eeccf2ee58decc11b6d3f2de13699e (diff) | |
| download | pure-c494ec7a37ff4863d420b4a9ccbe1df93e88de2d.tar.gz pure-c494ec7a37ff4863d420b4a9ccbe1df93e88de2d.zip | |
Remember the epoch of each of a peer's runs that send, not one
A receiver's memo kept one run's epoch a peer. A node whose outputs
send to this one sends in a run each, so after the receiver started
again (or let the peer rest) all runs but the last accepted were told
LOST and began their epochs again: records under the static keys for a
round trip, and an X25519 each. Now a run whose peer's place holds
another run still sending keeps its epoch beside, in one of two of
1,024 places its peer and run find (160 KiB at the file's head: the
memo is PLM3, and a PLM2 one is begun again). A run's place beside goes
once its peer's place has it, so an epoch's secrets stay only until the
next one's are.
test-link's three outputs of one node, each in epoch 1, go on after the
receiver starts again: no LOST, no X25519 (before: two LOSTs, an
accept). 012 says so.
Diffstat (limited to 'docs/design')
| -rw-r--r-- | docs/design/012-link-protocol.md | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/docs/design/012-link-protocol.md b/docs/design/012-link-protocol.md index 359dfbe..c99bdb0 100644 --- a/docs/design/012-link-protocol.md +++ b/docs/design/012-link-protocol.md @@ -254,8 +254,13 @@ LOST는 그 패킷의 번호를 담아 에폭 0의 키로 봉인한다. 답 run� **쉬는 피어.** 30초 동안 조용하고 쥔 것이 없는 피어는 run, 주소, 스트림을 놓는다(지역 선택). 다음 패킷이 다시 만든다. -**메모.** 선 위의 일은 아니지만 재시작에 관계된다. 받는 쪽은 피어마다 S와, 그 피어의 run 하나에 대해 받아들인 에폭을 파일에 -적어 둘 수 있다. 다시 떠도 그 run은 비대칭 연산 없이 이어진다. 메모에 없는 run은 LOST를 받고 에폭을 다시 시작한다. +**메모.** 선 위의 일은 아니지만 재시작에 관계된다. 받는 쪽은 피어마다 S와, 그 피어의 run마다 받아들인 에폭을 파일에 적어 둘 +수 있다. + +- 피어의 자리에는 run 하나를 둔다. +- 그 run이 아직 보내는 동안 같은 키의 다른 run(한 노드의 출력 여럿)은 곁의 자리 1,024개에 둔다. +- 다시 떠도, 쉬었다 돌아와도 이 run들은 비대칭 연산 없이 이어진다. +- 메모에 없는 run은 LOST를 받고 에폭을 다시 시작한다. ## 수와 지역 선택 @@ -308,8 +313,10 @@ LOST는 그 패킷의 번호를 담아 에폭 0의 키로 봉인한다. 답 run� - 받는 쪽의 개인 키를 가진 이는 그 받는 쪽에게 어느 보내는 쪽으로든 봉인할 수 있다(Noise KK의 첫 메시지와 같은 KCI). 에폭은 이것을 바꾸지 않는다. 다만 다른 run의 에폭 안으로는 들어오지 못한다. -- 메모는 피어마다 run 하나의 에폭만 든다. 한 노드의 출력 여럿이 같은 노드로 가면, 받는 쪽이 다시 뜬 뒤나 30초 넘게 쉰 뒤에 - 나머지 run은 LOST를 받고 에폭 0에서 다시 시작한다. +- 메모의 곁 자리는 1,024개이고 한 run이 두 자리 가운데 하나에 든다. 한 받는 쪽에 함께 보내는 "피어의 둘째 이후 run"이 + 그보다 많아 자리가 겹치면, 밀려난 run은 받는 쪽이 다시 뜬 뒤 LOST를 받고 에폭 0에서 다시 시작한다. +- 메모는 받아들인 에폭의 비밀을 그 run의 다음 에폭이 덮을 때까지 디스크에 둔다. 다시 떠도 잇기 위해서다. 그 사이 메모 + 파일을 가져간 이는 그 에폭과 앞 에폭을 열 수 있다. - NAT 뒤에서 쉬는 기기에 먼저 보내는 일은 풀지 않는다. ## 이 명세와 구현 |
