-
Notifications
You must be signed in to change notification settings - Fork 237
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Signer doc first draft #1674
base: master
Are you sure you want to change the base?
Signer doc first draft #1674
Conversation
@@ -0,0 +1 @@ | |||
The guides in this section provide step-by-step instructions for interacting with sBTC, including operating as a signer and (coming soon) developer guides on how to interact with sBTC as an application developer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might want to mention that as of today you can only run an sBTC signer if you have been selected from SIP-28. I imagine as a user I could be confused trying to run one not knowing it is a permisonned set for the time being.
{% hint style="warning" %} | ||
This documentation is for preview purposes only. The implementation is not final and should not be used in production. The configuration files, especially the docker-compose setup, will undergo significant changes. This guide is provided to give potential operators an early look at the setup process. | ||
{% endhint %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we make this a bit less scary? The setup might change, but we don't expect it to be completely different.
- `zmqpubhashblock`: Broadcasts only block hashes for lightweight block detection | ||
- `zmqpubrawblock`: Broadcasts complete block data for transaction processing | ||
|
||
This notification system creates a direct event stream: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This notification system creates a direct event stream: | |
This notification system creates a direct event stream when: |
### Emily API Configuration | ||
|
||
Controls connection to the Emily API server. The Emily API is designed to track deposits and withdrawals, providing information about the status of in-flight sBTC operations. It serves two primary user groups: sBTC users and sBTC app developers. | ||
|
||
```toml | ||
[emily] | ||
endpoints = ["https://emily-sbtc.com"] | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't this be a default value? Why would signers ever want to change this?
[signer] | ||
private_key = "your-private-key" # 32 or 33-byte hex format | ||
network = "mainnet" # Network selection: mainnet, testnet, or regtest | ||
deployer = "SNYourDeployerAddress" # Address that deployed sbtc contracts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here we will need to either:
- Provide a good default in code/config;
- manually give this information to the signers.
### Network Protocol Details | ||
|
||
The signer operates on port 4122 by default and supports both TCP and QUIC protocols for peer communication. The signer will attempt QUIC connections first for improved performance, automatically falling back to TCP if QUIC is unavailable or blocked on the network. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this could be together with the configuration for P2P?
|
||
## 3. Set up your blocklist client | ||
|
||
The blocklist client provides address screening services for the signer node. It interfaces with external API services to perform risk analysis on Bitcoin addresses. Default implementation uses Chainalysis, but supports custom implementations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll want signers to use Chainalsys sanctioned addresses API (https://www.chainalysis.com/free-cryptocurrency-sanctions-screening-tools/#:~:text=Cryptocurrency%20sanctions%20screening%20API,is%20on%20a%20sanctions%20list.) not the risk check.
On the linked page they can also request an API key.
|
||
</details> | ||
|
||
## 4. Set up your container |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## 4. Set up your container | |
## 4. Set up your containers |
Specific instructions for running your Docker container will be added shortly, but this is an example of what the Docker compose file will look like, so you can begin to understand what you'll be running as a signer. | ||
|
||
Remember, this is not production-ready yet and is only for demonstration purposes at the moment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specific instructions for running your Docker container will be added shortly, but this is an example of what the Docker compose file will look like, so you can begin to understand what you'll be running as a signer. | |
Remember, this is not production-ready yet and is only for demonstration purposes at the moment. | |
As we crystalize the Docker configuration, the following section displays an example of what the Docker compose file will look like, so that Signers can peek at how the system will look like. | |
Remember, this is not production-ready yet and is only for demonstration purposes at the moment. |
# DISCLAIMER! READ! | ||
# This file is an example of how it will look in production but there may be changes | ||
# to this once production docker images are created and uploaded to dockerhub. This file is | ||
# not meant to be used as is, but a docker compose like this one be created to be used later, | ||
# and this documentation will be updated to reflect those changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do we expect will change?
Description
This PR adds the first draft of the doc for running a sBTC signer