You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/fcc/guides/01-sign.mdx
+11-12Lines changed: 11 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,10 +23,10 @@ The TEE framework handles attestation, key management, and message routing — y
23
23
24
24
The Private Key Manager extension demonstrates the core TEE workflow:
25
25
26
-
1. A user sends an Elliptic Curve Integrated Encryption Scheme (ECIES) encrypted private key on-chain via the `InstructionSender` contract
27
-
2. The TEE extension decrypts and stores the key inside the secure enclave
28
-
3. A user sends a `sign` instruction with an arbitrary message
29
-
4. The TEE extension signs the message with the stored key and returns the signature on-chain
26
+
1. A user sends an Elliptic Curve Integrated Encryption Scheme (ECIES) encrypted private key on-chain via the `InstructionSender` contract.
27
+
2. The TEE extension decrypts and stores the key inside the secure enclave.
28
+
3. A user sends a `sign` instruction with an arbitrary message.
29
+
4. The TEE extension signs the message with the stored key and returns the signature on-chain.
30
30
31
31
We will build this in three parts: the **on-chain contract** that sends instructions, the **off-chain handler** that processes them, and the **deployment tooling** that ties everything together.
32
32
@@ -35,11 +35,10 @@ We will build this in three parts: the **on-chain contract** that sends instruct
35
35
The extension stack consists of three components running as Docker services:
36
36
37
37
-**`extension-tee`:** Your extension code (Go, Python, or TypeScript).
38
-
Receives decoded instructions from the proxy and returns results
38
+
Receives decoded instructions from the proxy and returns results.
39
39
-**`ext-proxy`:** The TEE extension proxy.
40
-
Watches the chain for new instructions targeting your extension, forwards them to your handler, and submits results back on-chain
41
-
-**`redis`:** In-memory store used by the proxy for internal state
42
-
40
+
Watches the chain for new instructions targeting your extension, forwards them to your handler, and submits results back on-chain.
41
+
-**`redis`:** In-memory store used by the proxy for internal state.
43
42
44
43
The tunnel ([Cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/) or [ngrok](https://ngrok.com/)) exposes the proxy's external port so that other TEE nodes on the network can reach your extension for attestation and availability checks.
45
44
@@ -89,7 +88,7 @@ contract InstructionSender {
89
88
90
89
...
91
90
}
92
-
````
91
+
```
93
92
94
93
:::note
95
94
The constructor takes the addresses of the two Flare system contracts.
@@ -548,7 +547,7 @@ cd typescript/tools
548
547
npm run register-tee -- -p http://localhost:6676 -l
549
548
```
550
549
551
-
The `-l` flag enables **local/test mode**, which uses a test attestation token instead of a real GCP JWT.
550
+
The `-l` flag enables **local/test mode**, which uses a test attestation token instead of a real [Google Cloud Platform JSON Web Token (JWT)](https://docs.cloud.google.com/api-gateway/docs/authenticating-users-jwt).
552
551
This is required when running outside of an actual TEE enclave.
553
552
554
553
The `-p` flag specifies the proxy URL used for the FDC availability check.
@@ -615,7 +614,7 @@ To create your own TEE extension using this template:
615
614
5.**Register handlers** - Wire up your handlers with the framework using `f.Handle(opType, opCommand, myHandler)`.
616
615
6.**Deploy and test** - Follow the steps in this guide to deploy your contract, register the extension, and verify it works.
617
616
618
-
:::tip[What to change vs. what to keep]
617
+
:::tip[What to change, what to keep]
619
618
Only modify files in `app/` (your business logic) and `contract/InstructionSender.sol` (your on-chain interface).
620
619
The files in `base/` are framework infrastructure and should not need changes.
621
620
:::
@@ -662,7 +661,7 @@ If your tunnel restarts and the URL changes:
0 commit comments