commit 4dee92a50805e201fb376651e6de099938051eb7 Author: _ <> Date: Tue Mar 25 21:20:55 2025 +0000 feat: initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..c32db03 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# HTTP Messages + +A specification for exchanging data using remote HTTP messages on a trusted server + + + +## Overview + +Enables a local client to make and receive http requests from a remote computer. Requires: + +* A trusted machine to process the messages (can be a home PC or Raspberry Pi) +* A relay (can be untrusted) +* A blossom server (can be untrusted) + + +## Architecture + +```mermaid +architecture-beta +group user(internet)[Nostr Client] +group cloud(cloud)[Untrusted Servers] +group home(server)[Trusted Server] +service client(internet) in user +service blossom(database)[Blossom Storage] in cloud +service relay(logos:aws-ec2)[Relays] in cloud +service pc(logos:aws-elb) in home +service bbi[Big Bad Internet] + +client:R -- L:blossom +client:B -- L:relay +pc:L -- R:blossom +pc:L -- R:relay +pc:B <--> T:bbi + + +``` + +## Event Structure + +```jsonc +{ + "kind": 1120, + "pubkey": "<pubkey>", + "content": "nip44Encrypt({'url':'blossom.one','decrypt':'password123'})", + "tags": [ + ["x", "<hash of encrypted message blob>"] + ["E", "<request event id>"], // (RES) Request ID (mandatory) + ["r", "https://relay.one"] // (REQ) Response Relay (optional) + ], + // other fields... +} +``` + +Explanations: + + * `kind:1120` - BIP39 word #1120 ([message](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt#L1120)). + * `"content"` - encrypted (NIP-44) JSON with location of blob and decryption key + * `"x"` - Blossom file hash of the encrypted request or response + * `"E"` - ID of the request event. Enables a response to be easily identified. + * `"r"` - (optional) relay on which the response should be sent. For Requests only. + + + + diff --git a/http.png b/http.png new file mode 100644 index 0000000..ea37cc8 Binary files /dev/null and b/http.png differ