feat: initial commit
This commit is contained in:
commit
4dee92a508
64
README.md
Normal file
64
README.md
Normal file
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
http.png
Normal file
BIN
http.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 35 KiB |
Loading…
x
Reference in New Issue
Block a user