For posterity

This commit is contained in:
John Poole 2026-05-29 12:30:45 -07:00
commit 4e1d9a75db

View file

@ -0,0 +1,101 @@
# Review Notes for `history_of_a_LINK.md`
These notes are intentionally separate from the draft.
## Strong Points
The document now gives a useful foundation for a new reader. The added background explains the run setup, the three-node test condition, the purpose of the simulated BOB/CY isolation, and the difference between direct physical LoRa reception and transported microReticulum packets.
The analysis also correctly frames the main result from run `20260528_2319`: announcement transport works, the BOB-to-CY LinkRequest reaches CY through DAN, CY accepts the LinkRequest, and BOB marks the Link active. The remaining failure is later, after DAN forwards Link data on the shared LoRa interface.
## Citation Improvements
For an appellate-brief style record, the main body should not rely on shorthand citations such as:
```text
CY line 1529: RX ANNOUNCE: label=Bob hash=e431430abeca68dca8411f50ca9864b0 phy=Dan(3)
```
Prefer the full citation format already used in the appendix:
```text
/home/jlpoole/logs/20260528_2319/CY_raw_20260528_231957.log:1529:RX ANNOUNCE: label=Bob hash=e431430abeca68dca8411f50ca9864b0 phy=Dan(3)
```
That makes each quoted line independently traceable without requiring the reader to cross-reference the appendix.
For quoted source code, use the same idea:
```cpp
// exercises/204_established_identities/src/main.cpp:1020-1024
inbound_destination = RNS::Destination(local_identity,
RNS::Type::Destination::IN,
RNS::Type::Destination::SINGLE,
APP_NAME,
APP_ASPECT);
```
Useful source citations for the current document:
```text
exercises/204_established_identities/src/main.cpp:50-51
exercises/204_established_identities/src/main.cpp:1020-1024
exercises/204_established_identities/src/TBeamSupremeLoRaInterface.h:37-42
exercises/204_established_identities/src/TBeamSupremeLoRaInterface.cpp:142-149
exercises/204_established_identities/src/TBeamSupremeLoRaInterface.cpp:157-187
exercises/204_established_identities/src/TBeamSupremeLoRaInterface.cpp:197-200
/usr/local/src/microreticulum/microReticulum/src/Destination.cpp:115-126
```
## Terminology Notes
`phy=Dan(3)` means CY received that LoRa frame from physical transmitter DAN, slot 3. It does not mean CY sent a confirmation to DAN or BOB. In the cited BOB announcement example, it means CY learned BOB's destination from a frame physically transmitted by DAN.
`destination hash` should be introduced as the stable Reticulum destination identifier for this application endpoint. In this exercise, BOB's destination hash is derived from BOB's fixed identity plus the exercise's app name and aspect strings.
The `addr_hash_material << identity.hash();` line appends the identity hash bytes to the destination-name hash material before truncating the final hash.
## Suggested Wording Fixes
`PUUBLIC KEY` should be `PUBLIC KEY`.
`using an bash script` should be `using a bash script`.
`up to 24 hour drift is allowed` would read more clearly as `up to 24 hours of holdover is allowed`.
`ED was defunct` may read as hardware failure. If ED was intentionally offline for the test, say `ED was offline for this run`.
`This would not be a real life scenario` can be softened to `This is a test policy, not an inherent Reticulum rule`.
## One Claim to Qualify
The draft says the lower identity initiates the Link. The logs prove the result, namely BOB initiates and CY accepts. Unless the document cites the application code that performs the ordering comparison, phrase this as an exercise policy observed in the logs rather than as a fact proved by the quoted log lines alone.
Suggested wording:
```text
The exercise policy is that one side of a known peer pair initiates the Link,
avoiding simultaneous LinkRequests and reducing LoRa airtime. The logs do not
show the peer-ordering comparison itself; they show the resulting behavior:
BOB initiates, and CY accepts.
```
## Blocking Section
The blocking explanation is good and worth keeping. To make it more rigorous, cite the source lines that show:
```text
1. The envelope constants: TBeamSupremeLoRaInterface.h:37-42
2. The transmit-side envelope prepend: TBeamSupremeLoRaInterface.cpp:142-149
3. The receive-side envelope strip: TBeamSupremeLoRaInterface.cpp:157-187
4. The BOB/CY physical drop rule: TBeamSupremeLoRaInterface.cpp:197-200
```
The strongest single sentence in that section is:
```text
The BOB/CY block is a physical-link simulation in TBeamSupremeLoRaInterface,
not a microReticulum-layer rule.
```
That distinction should remain prominent.