-
Notifications
You must be signed in to change notification settings - Fork 8
Feature Behavior Differences
The below features are notable features or differences in behavior between the original nodejs-pool and this fork.
The pool is capable of announcing mined blocks and announcing payouts to a Discord channel.
- Right-click on a text channel within your Discord server
- Select "Edit Channel"
- Go to "Webhooks"
- Click "Create Webhook"
- Choose the name of the bot, confirm the channel you want it to announce to, and copy the Webhook URL aside to use in the pool setup steps.
- Use your favorite method of editing MySQL database to enter the database for your nodejs-pool installation
- Locate the "general" setting for "discordWebhook"
- If your Webhook URL is:
https://discordapp.com/api/webhooks/422465258125393920/FnzULQzd7TMyw3QZdaQahplAZ2A2mznKN7WPwLJ6KSQ1Q1h4C5qOzOzc2thQfyYxBspR, then you would set the value of "discordWebhook" to:422465258125393920/FnzULQzd7TMyw3QZdaQahplAZ2A2mznKN7WPwLJ6KSQ1Q1h4C5qOzOzc2thQfyYxBspR - Both "discordBlockAnnounce" and "discordPayoutAnnounce" are true (enabled) by default. Optionally disable either of these at your discretion.
Note: Announcing payouts can get very spammy. This is generally only useful for very small pools that end up with long delays between payouts.
Tip: Consider creating a custom text channel just for this webhook and only permitting the nodejs-pool to send its alerts there. Your users can then choose to alert themselves anytime a message is sent to that channel. This allows for a simple and easy auto-alert when the pool mines a block, right to their phone!
The original nodejs-pool software does not handle significant fluctuations in network difficulty very well. It also is incapable of recording block effort much beyond 260% (with some variance, again dependent on fluctuating network difficulty). This is why you won't see block efforts beyond roughly 300-400% on most nodejs-pools. This means those pools are potentially reporting falsely low block efforts during long rounds.
This is documented and discussed on nodejs-pool's own issue tracker: https://github.com/Snipa22/nodejs-pool/issues/316
The effects this has is that your configured shareMulti value (The "N" in Pay Per Last N Shares) may not always be obeyed, and the effective "N" being used is less than that value on some long rounds. This can cause inaccurate percentages of block rewards to be given out to miners.
This fork addresses this issue by configuring an additional SQL config value that forces the pool to retain up to a minimum effort percentage worth of shares in the pool database even if longRunner would normally want to remove them.
Whatever "minEffortRetention" is set to within your SQL config will be the round effort that your pool will accurate record up to and accurately payout your miners up to. The value is defaulted to 750% Effort. This means if your pool experiences a round where effort fluctuates beyond 750%, it risks experiencing this same original problem. The higher you set this value, the larger your LMDB becomes on disk. For networks with stable difficulty, you can probably lower this.
The downside to fixing this very clear bug is that pools running this fork will "appear" to be having worst luck on their blocks. In reality, the other nodejs-pools are falsely under reporting their effort.