Skip to content

Instantly share code, notes, and snippets.

Last active April 21, 2022 05:22
Show Gist options
  • Save ribasushi/53b7383aeb6e6f9b030210f4d64351d5 to your computer and use it in GitHub Desktop.
Save ribasushi/53b7383aeb6e6f9b030210f4d64351d5 to your computer and use it in GitHub Desktop.
Recommended miner settings
# During space-race-1 we tuned the dealbots frequency to not overwhelm the miners
# With space-race-2 underway your miner will be negotiating deals with a number of
# clients, who lack coordination among themselves. Therefore it is *very strongly*
# recommended to tune your miner parameters based on the sealing capacity you already
# known from space-race-1
# The numbers below are the bare minimum for a single-box, non-gpu miner, and are
# very conservative safe numbers. No doubt your miner can do better so you can bring
# these numbers up. But! Do not dial them too high: if you lose sectors due to an
# unresponsive miner, your clients will be... sad.
MaxWaitDealsSectors = 3
MaxSealingSectors = 3
MaxSealingSectorsForDeals = 0
WaitDealsDelay = "9h0m0s"
# This number is critical - the miner will not accept any deal that starts earlier
# than the specified time. It equals the sum of
# - WaitDealsDelay above
# - The amount of time it takes your rig to go from Packing to Proving
# - Any additional time you want to allow for contingencies
# A conservative number of 24h is ok: clients expect this. Also if you seal the deal
# faster - they will be able to retrieve it before the official deal start!!!
ExpectedSealDuration = "24h0m0s"
# While we recommend trying to accept deals from anyone, it is good to have an
# "emergency valve" to keep some bad actors out. By using the short program included
# you do not have to even restart your miner: just edit the script and lotus will know
Filter = "/absolute/path/to/below/"
# Make sure these 4 are enabled
ConsiderOnlineStorageDeals = true
ConsiderOfflineStorageDeals = true
ConsiderOnlineRetrievalDeals = true
ConsiderOfflineRetrievalDeals = true
use warnings;
use strict;
use 5.014;
# Uncomment this to lock down the miner entirely
#exit 1
# A list of wallets you do not want to deal with
# For example this enty will prevent a shady ribasushi
# character from storing things on your miner
my $denylist = { map {( $_ => 1 )} qw(
use JSON::PP 'decode_json';
my $deal = eval { decode_json(do{ local $/; <> }) };
if( ! defined $deal ) {
print "Deal proposal JSON parsing failed: $@";
exit 1;
# Artificially limit deal start time to work around
# 1598306400 is the unix-time of "block 0" in the network
my $max_days_before_start = 7;
1598306400 + $deal->{Proposal}{StartEpoch} * 30
time() + 60 * 60 * 24 * $max_days_before_start
) {
print "Deal from client wallet $deal->{Proposal}{Client} begins more than $max_days_before_start days in the future, I do not like that";
exit 1;
if( $denylist->{$deal->{Proposal}{Client}} ) {
print "Deals from client wallet $deal->{Proposal}{Client} are not welcome";
exit 1;
exit 0;
Copy link

John77w commented May 17, 2021


Copy link

Pencab commented Jan 3, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment