-
Notifications
You must be signed in to change notification settings - Fork 43
Open
Description
Originally on #98 I added a section to the Mining Protocol specs introducing a formal definition of Proxy.
I felt that was necessary, since there's multiple mentions to the term Proxy on the Mining Protocol specs, without a proper definition, which feels like a chicken-and-egg kind of problem.
However, @jakubtrnka feedback was that this kind of definition deserves a separate annex, given that this is a kind of application of the protocol.
Below are some different proxy definitions suggested by @jakubtrnka :
Multiplexing proxy
- minimalistic design, minimum or even zero configuration options
- simple passthrough-proxy for extended channels.
- multiplexes standard channels through a single upstream connection via group channels
- no difficulty/target management - everything managed via upstream server
- only manages group, channels, ids, exranonce-prefixes. Merges and dispatches messages coming from downstream or upstream respectively. Uses channel_id based logic.
Demultiplexing proxy
- generic application - mainly for demonstration purposes
- simple pass-through for extended channels
- groups downstream multiplexed standard channels into groups based on a specific criteria - either username, device-type etc... and splits them into separate upstream connections
- this app would typically be used together with multiplexing proxy
organizes different groups using SetGroupChannel
Aggregation proxy
- logically separates down- and upstream sides
- maintains only extended upstream channels - main purpose is to reduce number of mining sessions by aggregation
- splits hashing space of the upstream job and assigns multiple smaller extended channels or standard channels to a given mining job.
- does difficulty/target management
- handles user identities
Translator proxy
V2 to V1 down-to-up translation
- zero configuration trivial translation layer for sv2-native miners and legacy sv1 pools
V1 to V2 down-to-up translation
- trivial translation layer for legacy sv1 miners and sv2 pool
- there is a single configuration option: whether a standard or an extended channel should be opened.
Metadata
Metadata
Assignees
Labels
No labels