Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Aggregator User Guide
The Aggregator is a Proof of capacity miner proxy for Linux/Unix/Windows. It has been conceived and developed by the Proof of Capacity Consortium and is released under GNU General Public License v3.0. This document describes the features available in Aggregator version 1.2.x.
A miner proxy is an application used to forward nonces from plot files mined on different machines to the configured pool or wallet (in case of solo mining). Note that in case the Aggregator is used, all miners have to be configured to submit nonces to the Aggregator, instead of submitting them to the pool or wallet.
Dual chain PoC mining is supported as of Aggregator version 1.2.0.
The Aggreagtor is distributed as an executable. The source code is also available for users who wish to compile it themselves.
The Aggregator executable can be downloaded from the PoCC GitHub repository:
After the file has been downloaded, users should unpack the archive, which contains the executable and the configuration file. In order for Aggregator to work, the executable and the configuration file have to be stored in the same directory.
The configuration file is given in YAML format, a human-readable data serialization language.
The Aggregator is a command line interface application. In order to run the application, users should start the Command Prompt, navigate to the directory where the executable has been stored and run the application by typing:
The configuration file contains default settings that will produce the screen shown above.
The operation of the Aggregator to which an instance of Scavenger 1.7.8 is sending deadlines is shown in the image below:
The user should provide all Aggregator configuration parameters to the config.yaml file that comes with the executable and configure all their miners to submit deadlines to the Aggregator.
"127.0.0.1:7777"The address the proxy listens to i.e. the address the connected miner(s) should submit deadlines to.
20The maximum allowed scan time for plots in seconds. The parameter serves to prevent collisions in case of dual chain mining, by stopping the scanning process after the expiry of the set time on the secondary chain, in case a block appears on the primary mined chain.
true/falseIf set to
true, it will display miner information at the beginning of each round. If set to
falseno miner information will be displayed.
Primary And Secondary Chain Configuration
The configuration of the chains that are mined should be set up in accordance with the mining setup - single or dual chain. In case the user mines one blockchain, the set of parameters referring to the secondary chain can be omitted (commented out by preceding every line in the configuration with a
# or deleted) from the configuration file.
"http://50-50-pool.burst.cryptoguru.org:8124"The setting refers to the pool or wallet URL where the deadlines should be submitted to by the Aggregator. Note that both the protocol (
wss) as well as the port number have to be provided.
31536000The target deadline in seconds.
""The passphrase for solo mining. In case one is provided, it will overwrite the one set in the miner. In case the setting is left blank, the passphrase provided in the miner will be forwarded.
true/falseIf set to
trueif a shorter deadline has already been found, the deadline will be ignored.
""In case a mining pool requires an account key to be provided, provide the pertinent key between double quotes.
The additional information is not a mandatory section of the Aggregator configuration. It offers the setting of two parameters:
"Aggregator"An arbitrary string that will be sent to the mining pool.
""An arbitrary string, which, if set is the miner alias.
The section is not mandatory for Aggregator operation. It offers just one configuration option:
false/trueEnable logging by setting the option to
trueor disable it by setting it to
false. If the option is set to
true, Aggregator will create a
log.txtfile to store application logs. In case the logging is turned on, all application outputs shown in the CLI will be written to a text file.
The section of the config.yaml file that offers the configuration of Aggregator protection is mandatory for the operation of the proxy application. The protection settings are important as a preventive actions against DDoS attacks.
100Sets the number of miners that are allowed to communicate with a single IP address the Aggregator listens to.
45Defines the maximum requests per seconds the Aggregator will consider per IP.
10Sets the size of the queued requests the Aggregator will consider.
false/trueIf set to
true, it will ignore all requests from the miner for 15 minutes if a false deadline has been sent to the proxy.
The rate limit and the burst rate are settings in a common context. In case the rate limit is set to 10 - it implies that the Aggregator will consider 10 requests per IP address in a second. The setting of 10 implies that one request is received every 100ms (1000ms/10=100ms). In case the requests don't arrive in equal intervals (e.g. the second request arrives 30ms after the first request), the incoming requests are queued, and processed after the expiration of the uniform interval - in this example this would mean that the second, queued, request would be processed after the expiration of 100ms after the first request was received by the proxy.
Compiling The Aggregator
In order to compile Aggregator from the source code available as a .zip archive or as a a .tar.gz archive, it's required to have Go version 1.11 or higher installed on the system. To install Go and configure the environment, users should refer to the Go Programming Language website. To compile the application, use:
The compiled binary is run as described above.