mirror of
https://github.com/RoboSats/robosats.git
synced 2024-12-13 10:56:24 +00:00
8e0d14b872
* Add new coordinator entry issue form * Add Federation basis
324 lines
13 KiB
YAML
324 lines
13 KiB
YAML
name: Coordinator Registration
|
|
description: Become a RoboSats Coordinator
|
|
title: "[federation]: coordinator 'Alias'"
|
|
labels: ["Federation"]
|
|
assignees:
|
|
- reckless-satoshi
|
|
body:
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
# Coordinator Registration
|
|
This form is for registering a new default coordinator on the RoboSats client. Before proceeding, please review the [RoboSats Federation Basis](https://github.com/RoboSats/robosats/blob/main/federation.md). The Github thread generated by this issue will serve as a communication channel between the development team and the new coordinator, if necessary. The information provided will be used to create a new entry in `frontend/static/federation.json`. If you're technically proficient and wish to expedite the process, you can directly edit `federation.json` via a pull request. Here's a template coordinator:
|
|
|
|
```json
|
|
"temp": {
|
|
"longAlias": "Template",
|
|
"shortAlias": "temp",
|
|
"description": "This is the description for an example coordinator",
|
|
"motto": "Don't trust, verify",
|
|
"color": "#000000",
|
|
"contact": {
|
|
"pgp": "keys.openpgp.org/vks/v1/by-fingerprint/....",
|
|
"fingerprint": "...",
|
|
"email": "contact@contact.com",
|
|
"telegram": "examplecoordinator",
|
|
"twitter": "examplecoordinator",
|
|
"matrix": "#example:matrix.org",
|
|
"website": "https://example.coordinator.com",
|
|
"simplex": "https://....",
|
|
"nostr": "npub....",
|
|
"reddit": "u/..."
|
|
},
|
|
"badges": {
|
|
"donatesToDevFund": 20,
|
|
},
|
|
"policies": {
|
|
"Privacy Policy": "...",
|
|
"Data Policy": "..."
|
|
"Rule #1": "You do not talk about RoboSats Club",
|
|
"Rule #2": "You DO NOT talk about RoboSats Club",
|
|
},
|
|
"mainnet": {
|
|
"onion": "http://robosats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion",
|
|
"clearnet": "https://coordinator-address.com"
|
|
"i2p": "http:///.........b32.i2p"
|
|
},
|
|
"testnet": {
|
|
"onion": "http://robotestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion",
|
|
"clearnet": "https://testnet.coordinator-address.com"
|
|
"i2p": "http:///.........b32.i2p"
|
|
},
|
|
"mainnetNodesPubkeys": ["000000000000000000000000000000000000000000000000000000000000000000"],
|
|
"testnetNodesPubkeys": ["000000000000000000000000000000000000000000000000000000000000000000"]
|
|
```
|
|
|
|
All fields can be updated or completed later through pull requests. Don't worry about getting everything perfect initially. A partially completed form is better than none. It's okay if your data policy, privacy policy, node ids, and endpoints aren't fully defined or are subject to change.
|
|
- type: input
|
|
id: alias
|
|
attributes:
|
|
label: Coordinator Alias
|
|
description: What name should the robots refer to you by?
|
|
placeholder: e.g. SatsSquare
|
|
validations:
|
|
required: true
|
|
- type: textarea
|
|
id: avatar
|
|
attributes:
|
|
label: Avatar
|
|
description: Your coordinator profile picture. Ideally 200x200px.
|
|
placeholder: Paste a link to your avatar picture
|
|
- type: textarea
|
|
id: description
|
|
attributes:
|
|
label: Description
|
|
description: Share something about yourself.
|
|
placeholder: Tell us about you, your values, and why you want to coordinate RoboSats.
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: motto
|
|
attributes:
|
|
label: Motto
|
|
description: A brief phrase to be displayed under your profile picture.
|
|
placeholder: e.g. Don't trust, verify.
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: color
|
|
attributes:
|
|
label: Color
|
|
description: |
|
|
A hex RGB color used for accent and easier identification in the RoboSats UI.
|
|
placeholder: e.g. "#000000"
|
|
validations:
|
|
required: false
|
|
|
|
# Development Funding
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Development Funding
|
|
Donations to the Development Fund (DevFund) are voluntary with no minimum amount. The default donation rate in the Coordinator backend is 20%. The value entered here is for display purposes and can be updated later via a PR. Ideally, it should match the donation rate set in your ``.env`` file. The RoboSats client app randomly sorts coordinators weighted by their DevFund donation value. Thus, the orders of the coordinators that contribute to the development have a higher chance to appear first in the Order book. Coordinators who contribute to the DevFund are more likely to receive support if needed (note that unless the devs are under time constraints support is unlikely to be denied). These patron perks are the way developers say "thank you for your contribution!". The RoboSats development team has an exciting roadmap ahead. However, once RoboSats is decentralized, the only source of funding for further development and maintaining the codebase will be donations (we do not accept venture-capital investments).
|
|
- type: input
|
|
id: devfund
|
|
attributes:
|
|
label: DevFund Donations
|
|
description: |
|
|
What percentage of trade revenue will you donate to the RoboSats Development Fund?
|
|
placeholder: e.g. 20%
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: pgp
|
|
attributes:
|
|
label: "PGP Public Key and Fingerprint"
|
|
description: |
|
|
Your permanent identity. If needed, you may have to verify your identity to robots or other coordinators by signing a message.
|
|
placeholder: |
|
|
e.g. Pubkey repo: https://keys.openpgp.org//vks/v1/by-fingerprint/...
|
|
Fingerprint: 1234 5678 90AB CDEF 1234 5678 90AB CDEF 1234
|
|
validations:
|
|
required: true
|
|
|
|
# Coordinator Policies
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Coordinator Policies
|
|
The following three sections are designed to inform robots about your service expectations as a coordinator. It's perfectly acceptable to refine your policies over time, as coordinating RoboSats is a learning process. However, remember that robots appreciate clear and concise terms.
|
|
- type: textarea
|
|
id: privacy-policy
|
|
attributes:
|
|
label: Privacy Policy
|
|
description: |
|
|
Describe how you will handle privacy. For example, what kind of evidence will be required in a dispute? How will sensitive information be treated?
|
|
placeholder: |
|
|
e.g., 1) TLSnotary might be required for evidence submission in disputes. 2) Full user identification may be necessary to verify ownership of the payment method.
|
|
validations:
|
|
required: true
|
|
- type: textarea
|
|
id: data-policy
|
|
attributes:
|
|
label: Data Policy
|
|
description: |
|
|
Explain your data handling practices. For instance, what is your data retention policy? Will data be shared with third parties? Although a RoboSats coordinator's data collection is limited by design, a coordinator could still learn about users through heuristic analysis, payout node pubkeys, onchain addresses, dispute statements, evidence submission, etc.
|
|
placeholder: |
|
|
e.g., Data will not be shared or sold to any third party. The database will be cleared every 7 days, except for orders under dispute...
|
|
validations:
|
|
required: true
|
|
- type: textarea
|
|
id: other-policies
|
|
attributes:
|
|
label: Other Policies
|
|
description: Any other policies can be set here.
|
|
placeholder: |
|
|
e.g.
|
|
"Rule #1": "You do not talk about RoboSats Club"
|
|
"Rule #2": "You DO NOT talk about RoboSats Club"
|
|
validations:
|
|
required: true
|
|
|
|
# Coordinator Addresses
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Coordinator Addresses
|
|
Your coordinator API should be publicly accessible via an Onion hidden service. Optionally, you can also expose your API over I2P for redundancy, ensuring robots can still use your service if TOR is under attack. Clearnet endpoints can also be added to your coordinator. You can create new tor2web aliases on services like clearnetonion.eu.org or others (do your own research).
|
|
- type: input
|
|
id: onion-mainnet
|
|
attributes:
|
|
label: Onion Mainnet Coordinator Service Address
|
|
description: The Onion hidden service where your MAINNET RoboSats coordinator API can be found.
|
|
placeholder: e.g. http://robosats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: onion-testnet
|
|
attributes:
|
|
label: Onion Testnet Coordinator Service Address
|
|
description: The Onion hidden service where your TESTNET RoboSats coordinator API can be found.
|
|
placeholder: e.g. http://robotestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: i2p-mainnet
|
|
attributes:
|
|
label: I2P Mainnet Coordinator Service Address
|
|
description: The I2P service where your MAINNET RoboSats coordinator API can be found (Optional).
|
|
placeholder: e.g. http:///.........b32.i2p
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: i2p-testnet
|
|
attributes:
|
|
label: I2P Testnet Coordinator Service Address
|
|
description: The I2P service where your TESTNET RoboSats coordinator API can be found (Optional).
|
|
placeholder: e.g. hhttp:///.........b32.i2p
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: clearnet-mainnet
|
|
attributes:
|
|
label: Clearnet Mainnet Coordinator Service Address
|
|
description: The Clearnet address where your MAINNET RoboSats coordinator API can be found.
|
|
placeholder: e.g. http://mainnet.coordinator.com
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: clearnet-testnet
|
|
attributes:
|
|
label: Clearnet Testnet Coordinator Service Address
|
|
description: The Clearnet address where your TESTNET RoboSats coordinator API can be found.
|
|
placeholder: e.g. http://testnet.coordinator.com
|
|
validations:
|
|
required: false
|
|
|
|
# Node Pubkeys
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Node Pubkeys
|
|
Enter your Lightning node pubkeys (also known as node_id). You can enter multiple pubkeys (comma-separated) for both mainnet and testnet. If you haven't created the lightning node yet, enter a placeholder. These pubkeys will be used to direct robots to explorers to find your node (e.g., 1ML or Amboss).
|
|
- type: input
|
|
id: nodeids-mainnet
|
|
attributes:
|
|
label: Mainnet Pubkey(s)
|
|
description: Mainnet Coordinator Lightning Node Pubkey(s)
|
|
placeholder: e.g. "000000000000000000000000000000000000000000000000000000000000000000", "...."
|
|
validations:
|
|
required: true
|
|
- type: input
|
|
id: nodeids-testnet
|
|
attributes:
|
|
label: Testnet Pubkey(s)
|
|
description: Testnet Coordinator Lightning Node Pubkey(s)
|
|
placeholder: e.g. "000000000000000000000000000000000000000000000000000000000000000000", "...."
|
|
validations:
|
|
required: true
|
|
|
|
# Contact Methods
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Contact Methods
|
|
Only one contact method is required, but multiple are preferred. Find a balance between accessibility and operational security (too many contact methods increase the surface area and might harm OpSec).
|
|
Contact methods below are sorted by importance.
|
|
- type: input
|
|
id: email
|
|
attributes:
|
|
label: "1. email"
|
|
description: "Public contact method #1: Email."
|
|
placeholder: e.g. contact@example.onion
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: simplex
|
|
attributes:
|
|
label: "2. SimpleX"
|
|
description: "Public contact method #2: SimpleX"
|
|
placeholder: e.g. http://yoursimplexusercontactaddress.....onion
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: matrix
|
|
attributes:
|
|
label: "3. Matrix"
|
|
description: "Public contact method #3: Matrix."
|
|
placeholder: "e.g. #example:matrix.org"
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: nostr
|
|
attributes:
|
|
label: "4. Nostr"
|
|
description: "Public contact method #4: Website."
|
|
placeholder: "e.g. npub..."
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: website
|
|
attributes:
|
|
label: "5. Website"
|
|
description: "Public contact method #5: Website."
|
|
placeholder: "e.g. https//coordinator-alias.com"
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: telegram
|
|
attributes:
|
|
label: "6. Telegram"
|
|
description: "Public contact method #6: Telegram."
|
|
placeholder: "e.g. @tguserhandle"
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: twitter
|
|
attributes:
|
|
label: "7. Twitter"
|
|
description: "Public contact method #7: Twitter."
|
|
placeholder: "e.g. @twitteruser"
|
|
validations:
|
|
required: false
|
|
- type: input
|
|
id: reddit
|
|
attributes:
|
|
label: "8. Reddit"
|
|
description: "Public contact method #8: Reddit."
|
|
placeholder: "e.g. @reddit"
|
|
validations:
|
|
required: false
|
|
|
|
# Federation Basis
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
## Federation Basis
|
|
- type: checkboxes
|
|
id: terms
|
|
attributes:
|
|
label: RoboSats Federation Basis
|
|
description: By submitting this issue, you agree to accept the basis for the [RoboSats Federation Basis](https://github.com/RoboSats/robosats/blob/main/federation.md)
|
|
options:
|
|
- label: I accept the basis of the RoboSats Federation
|
|
required: true |