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. | |
[Sealing] | |
MaxWaitDealsSectors = 3 | |
MaxSealingSectors = 3 | |
MaxSealingSectorsForDeals = 0 | |
WaitDealsDelay = "9h0m0s" | |
[Dealmaking] | |
# 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/dealfilter.pl" | |
# Make sure these 4 are enabled | |
ConsiderOnlineStorageDeals = true | |
ConsiderOfflineStorageDeals = true | |
ConsiderOnlineRetrievalDeals = true | |
ConsiderOfflineRetrievalDeals = true |
#!/usr/bin/perl | |
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( | |
t3vxr6utzqjobnjnhi5gwn7pqoqstw7nrh4kchft6tzb2e7xorwvj5f3tg3du3kedadtkxvyp4jakf3zdd4iaa | |
)}; | |
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 https://github.com/filecoin-project/lotus/issues/3929 | |
# 1598306400 is the unix-time of "block 0" in the network | |
my $max_days_before_start = 7; | |
if( | |
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; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment