SnapMail Basic Workflow
sequenceDiagram
participant Sender Ribosome
participant Sender Zome
participant Receiver Ribosome
Note right of Sender Ribosome : 'send_mail' request received
Sender Ribosome->>+Sender Zome: send_mail()
Sender Zome->>Sender Zome: Create OutMail
Sender Zome->>-Sender Ribosome:
Sender Ribosome->>Sender Ribosome: Commit OutMail
Sender Ribosome->>+Sender Zome: post_commit()
Sender Zome->>+Sender Ribosome: call_remote("receive_dm")
Sender Ribosome->>+Receiver Ribosome: receive_dm(mail)
Receiver Ribosome->>-Sender Ribosome: Success
Sender Ribosome->>-Sender Zome: ok
Sender Zome->>+Sender Ribosome: call_remote("commit_confirmation")
Sender Ribosome->>+Sender Zome: commit_confirmation()
Sender Zome->>Sender Zome: Create DeliveryConfirmation
Sender Zome->>-Sender Ribosome:
Sender Ribosome->>Sender Ribosome: Commit DeliveryConfirmation
Sender Ribosome->>-Sender Zome: result
Sender Zome->>-Sender Ribosome: ok
sequenceDiagram
participant Sender
participant Receiver
Sender->>Sender: Write OutMail
Sender->>Receiver: {mail}
Receiver->>Receiver: Write InMail
Receiver-->>Sender: Success
Note right of Receiver: Opens mail
Receiver->>Receiver: Write OutAck
Receiver->>Receiver: Add 'acknowledgment' link to InMail
Receiver->>Sender: {ack}
Sender->>Sender: Write InAck
Sender-->>Receiver: Success
Sender->>Sender: Add 'receipt' link to OutMail
sequenceDiagram
participant Sender
participant DHT
participant Receiver
Sender->>Sender: Write OutMail
loop receipient
Sender->>Sender: Write PendingMail
Sender->>DHT: Share PendingMail
Sender->>DHT: Add 'mail_inbox' link at receipient's handle address
end
Note right of Receiver: Checks mail
Receiver-->>+DHT: Looks up 'mail_inbox' links at handle address
DHT-->>-Receiver: [links]
loop PendingMail link
Receiver->>+DHT: Get PendingMail
DHT->>-Receiver: [PendingMail]
Receiver->>Receiver: Write InMail
Receiver->>DHT: Delete PendingMail
end
Note right of Receiver: Opens mail
Receiver->>Receiver: Write AckReceipt
Receiver->>Receiver: Add 'acknowledgment' link to InMail
Receiver->>DHT: Share AckReceipt
Receiver->>DHT: Add 'ack_inbox' link at sender's handle address
Note left of Sender: Checks mail
Sender-->>+DHT: Looks up 'ack_inbox' links at handle address
DHT-->>-Sender: [links]
loop receipt link
Sender->>+DHT: Get AckReceipt
DHT->>-Sender: [AckReceipt]
Sender->>Sender: Add 'receipts' link to OutMail
Sender->>DHT: Delete AckReceipt
end
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing