Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
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 )} (
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;

This comment has been minimized.

Copy link

@John77w John77w commented May 17, 2021


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