Skip to content
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

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Signer doc first draft #1674

wants to merge 3 commits into from

Conversation

kenrogers
Copy link
Collaborator

Description

This PR adds the first draft of the doc for running a sBTC signer

@@ -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.
Copy link
Contributor

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.

Comment on lines +3 to +5
{% 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 %}
Copy link
Contributor

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:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This notification system creates a direct event stream:
This notification system creates a direct event stream when:

Comment on lines +98 to +105
### 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"]
```
Copy link
Contributor

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?

CC @AshtonStephens

[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
Copy link
Contributor

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:

  1. Provide a good default in code/config;
  2. manually give this information to the signers.

Comment on lines +409 to +411
### 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.
Copy link
Contributor

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.
Copy link
Contributor

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4. Set up your container
## 4. Set up your containers

Comment on lines +454 to +456
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Comment on lines +463 to +467
# 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.
Copy link
Contributor

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants