-
Notifications
You must be signed in to change notification settings - Fork 4
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
Standalone gateways #1515
Comments
|
Is name update something we don’t want/need to support from the beginning? |
It should also be noted that the Service Contract requires both accounts to accept it and the service to set its required fees. That way one endpoint for adding a gateway entry won't be enough as the user will create the contracts, pass it to the service, the service will set the fees and accept then the user will accept and pass the gateway details. So, at least two requests will be made for two different endpoints to actually add an entry to the gateway service. |
Indeed, a service contract would be suitable to handle such gw service billing (related to some consumption). A special attention should be given to the fees definition while setting the service contract here: Because once fees are set ( |
Deprecates: #1472
This story discusses the requirements and some of the implementation details of a
standalone
gateway: A stand alone gateway can be installed as a service by any user/farmer on the public internet and allows other users to use it to expose their private services to the public internet over allocated domain names:name
with a name contractOperation of the gateway
GET /
returns information about the gateway, this includesgateway.grid.tf
)POST /gateway
requires a payload with the following datecontract-id
: that is supposedly created by the user with the gw service accountname
: this can be either a short name prefix (as reserved by a name contract) or afqdn
if the user owns a domain and want to use it (requires more work from the user side that will be explained later)backends
: list of valid backendstls-passthrough
: booleanDELETE /gateway/<name>
All requests requires a JWT the jwt token requires the following fields:
The JWT is signed with the user key. The JWT then means it can be used to authenticate the identity of that user who initiated the request.
Once authentication is passed, the user request is then processed as follows:
dots
in the name) then this name must be verified against the name contracts.<name>.<gateway-domain>.
to the configured backendsBilling
traefic provides metrics for the domains that we can collect (and aggregate) every configurable period of time. The gw must then take care of calculating consumption over a certain period of time.
Then for each domain, we can then send consumption (or billing) reports to the contract. this should then allow hosts to get paid for providing the gw service.
Notes:
You can see above this has nothing to do with mycelium. This is because supporting mycelium is outside the scoop of the gw implementation. Mycelium supports comes free of charge by running a mycelium on the same node as the gw. Which allows backends then to use mycelium IPs.
The text was updated successfully, but these errors were encountered: