Markdown shows whether its ENS signature holds when read (#5)

Co-authored-by: Danny Kim <temeddix@gmail.com>
Co-committed-by: Danny Kim <temeddix@gmail.com>
This commit was merged in pull request #5.
This commit is contained in:
Danny Kim
2026-09-25 20:11:58 +00:00
committed by temeddix
parent 1d36760782
commit bf0e4561c0
7 changed files with 800 additions and 38 deletions
+12 -4
View File
@@ -29,14 +29,22 @@ contents is refused rather than removed whole.
## Signing
Saving a `.md` file holds it whole, up to 8 MiB, and writes it once finished,
Saving a `.md` file holds it whole, up to 96 KiB, and writes it once finished,
with `signer` and `signature` set in its frontmatter; every other file streams
straight through. The signature is EIP-191 `personal_sign` over the signer name
and the body's SHA-256, made with the configured key; other frontmatter and the
body stay byte for byte. A key that is not 32 bytes of hex refuses the
connection, and a `.md` file that is not UTF-8 refuses the save. Reading passes
every file through unchanged. The RPC address is for verifying signers, which a
later version adds to reads.
connection, and a `.md` file that is not UTF-8 refuses the save.
## Verifying
Reading a `.md` file of up to 40 KiB checks its signature against ENSv2 on
Sepolia through the RPC address and adds an `ens-verification` line to the
frontmatter Memona receives, which Memona shows as a badge; a larger one up to
1 MiB is marked as not checked. Both limits keep hashing and key recovery
inside the instruction budget Memona gives each call. The line never
reaches the server: a save drops it before signing, and one stored on the
server is replaced. Verdicts are reused for 30 seconds per signed body.
## Building