Skip to content

Latest commit

 

History

History
805 lines (664 loc) · 63.1 KB

CHANGELOG_1.0x.md

File metadata and controls

805 lines (664 loc) · 63.1 KB

Lotus changelog v1.0.0 - v1.9.0

1.9.0 / 2021-05-17

This is an optional Lotus release that introduces various improvements to the sealing, mining, and deal-making processes.

Highlights

Changes

  • storagefsm: Apply global events even in broken states (#5962)
  • Default the AlwaysKeepUnsealedCopy flag to true (#5743)
  • splitstore: compact hotstore prior to garbage collection (#5778)
  • ipfs-force bootstrapper update (#5799)
  • better logging when unsealing fails (#5851)
  • perf: add cache for gas permium estimation (#5709)
  • backupds: Compact log on restart (#5875)
  • backupds: Improve truncated log handling (#5891)
  • State CLI improvements (State CLI improvements)
  • API proxy struct codegen (#5854)
  • move DI stuff for paychmgr into modules (#5791)
  • Implement Event observer and Settings for 3rd party dep injection (#5693)
  • Export developer and network commands for consumption by derivatives of Lotus (#5864)
  • mock sealer: Simulate randomness sideeffects (#5805)
  • localstorage: Demote reservation stat error to debug (#5976)
  • shed command to unpack miner info dumps (#5800)
  • Add two utils to Lotus-shed (#5867)
  • add shed election estimate command (#5092)
  • Add --actor flag in lotus-shed sectors terminate (#5819)
  • Move lotus mpool clear to lotus-shed (#5900)
  • Centralize everything on ipfs/go-log/v2 (#5974)
  • expose NextID from nice market actor interface (#5850)
  • add available options for perm on error (#5814)
  • API docs clarification: Document StateSearchMsg replaced message behavior (#5838)
  • api: Document StateReplay replaced message behavior (#5840)
  • add godocs to miner objects (#2184)
  • Add description to the client deal CLI command (#5999)
  • lint: don't skip builtin (#5881)
  • use deal duration from actors (#5270)
  • remote calc winningpost proof (#5884)
  • packer: other network images (#5930)
  • Convert the chainstore lock to RW (#5971)
  • Remove CachedBlockstore (#5972)
  • remove messagepool CapGasFee duplicate code (#5992)
  • Add a mining-heartbeat INFO line at every epoch (#6183)
  • chore(ci): Enable build on RC tags (#6245)
  • Upgrade nerpa to actor v4 and bump the version to rc4 (#6249)

Fixes

  • return buffers after canceling badger operation (#5796)
  • avoid holding a lock while calling the View callback (#5792)
  • storagefsm: Trigger input processing when below limits (#5801)
  • After importing a previously deleted key, be able to delete it again (#4653)
  • fix StateManager.Replay on reward actor (#5804)
  • make sure atomic 64bit fields are 64bit aligned (#5794)
  • Import secp sigs in paych tests (#5879)
  • fix ci build-macos (#5934)
  • Fix creation of remainder account when it's not a multisig (#5807)
  • Fix fallback chainstore (#6003)
  • fix 4857: show help for set-addrs (#5943)
  • fix health report (#6011)
  • fix(ci): Use recent ubuntu LTS release; Update release params ((#6011))

1.8.0 / 2021-04-05

This is a mandatory release of Lotus that upgrades the network to version 12, which introduces various performance improvements to the cron processing of the power actor. The network will upgrade at height 712320, which is 2021-04-29T06:00:00Z.

Changes

  • v4 specs-actors integration, nv12 migration (#6116)

1.6.0 / 2021-04-05

This is a mandatory release of Lotus that upgrades the network to version 11, which implements FIP-0014. The network will upgrade at height 665280, which is 2021-04-12T22:00:00Z.

v1 sector extension CLI

This release also expands the lotus-miner sectors extend CLI, with a new option that automatically extends all extensible v1 sectors. The option can be run using lotus-miner sectors extend --v1-sectors.

  • The tolerance flag can be passed to indicate what durations aren't "worth" extending. It defaults to one week, which means that sectors whose current lifetime's are within one week of the maximum possible lifetime will not be extended.

  • The expiration-cutoff flag can be passed to skip sectors whose expiration is past a certain point from the current head. It defaults to infinity (no cutoff), but if, say, 28800 was specified, then only sectors expiring in the next 10 days would be extended (2880 epochs in 1 day).

Changes

  • Util for miners to extend all v1 sectors (#5924)
  • Upgrade the butterfly network (#5929)
  • Introduce the v11 network upgrade (#5904)
  • Debug mode: Make upgrade heights controllable by an envvar (#5919)

1.5.3 / 2021-03-24

This is a patch release of Lotus that introduces small fixes to the Storage FSM.

Changes

  • storagefsm: Fix double unlock with ready WaitDeals sectors (#5783)
  • backupds: Allow larger values in write log (#5776)
  • storagefsm: Don't log the SectorRestart event (#5779)

1.5.2 / 2021-03-11

This is an hotfix release of Lotus that fixes a critical bug introduced in v1.5.1 in the miner windowPoSt logic. This upgrade is only affecting miner nodes.

Changes

  • fix window post rand check (#5773)
  • wdpost: Always use head tipset to get randomness (#5774)

1.5.1 / 2021-03-10

This is an optional release of Lotus that introduces an important fix to the WindowPoSt computation process. The change is to wait for some confidence before drawing beacon randomness for the proof. Without this, invalid proofs might be generated as the result of a null tipset.

Splitstore

This release also introduces the splitstore, a new optional blockstore that segregates the monolithic blockstore into cold and hot regions. The hot region contains objects from the last 4-5 finalities plus all reachable objects from two finalities away. All other objects are moved to the cold region using a compaction process that executes every finality, once 5 finalities have elapsed.

The splitstore allows us to separate the two regions quite effectively, using two separate badger blockstores. The separation means that the live working set is much smaller, which results in potentially significant performance improvements. In addition, it means that the coldstore can be moved to a separate (bigger, slower, cheaper) disk without loss of performance.

The design also allows us to use different implementations for the two blockstores; for example, an append-only blockstore could be used for coldstore and a faster memory mapped blockstore could be used for the hotstore (eg LMDB). We plan to experiment with these options in the future.

Once the splitstore has been enabled, the existing monolithic blockstore becomes the coldstore. On the first head change notification, the splitstore will warm up the hotstore by copying all reachable objects from the current tipset into the hotstore. All new writes go into the hotstore, with the splitstore tracking the write epoch. Once 5 finalities have elapsed, and every finality thereafter, the splitstore compacts by moving cold objects into the coldstore. There is also experimental support for garbage collection, whereby nunreachable objects are simply discarded.

To enable the splitstore, add the following to config.toml:

[Chainstore]
  EnableSplitstore = true

Highlights

Other highlights include:

  • Improved deal data handling - now multiple deals can be adding to sectors in parallel
  • Rewriten sector pledging - it now actually cares about max sealing sector limits
  • Better handling for sectors stuck in the RecoverDealIDs state
  • lotus-miner sectors extend command
  • Optional configurable storage path size limit
  • Config to disable owner/worker fallback from control addresses (useful when owner is a key on a hardware wallet)
  • A write log for node metadata, which can be restored as a backup when the metadata leveldb becomes corrupted (e.g. when you run out of disk space / system crashes in some bad way)

Changes

  • avoid use mp.cfg directly to avoid race (#5350)
  • Show replacing message CID is state search-msg cli (#5656)
  • Fix riceing by importing the main package (#5675)
  • Remove sectors with all deals expired in RecoverDealIDs (#5658)
  • storagefsm: Rewrite input handling (#5375)
  • reintroduce Refactor send command for better testability (#5668)
  • Improve error message with importing a chain (#5669)
  • storagefsm: Cleanup CC sector creation (#5612)
  • chain list --gas-stats display capacity (#5676)
  • Correct some logs (#5694)
  • refactor blockstores (#5484)
  • Add idle to sync stage's String() (#5702)
  • packer provisioner (#5604)
  • add DeleteMany to Blockstore interface (#5703)
  • segregate chain and state blockstores (#5695)
  • fix(multisig): The format of the amount is not correct in msigLockApp (#5718)
  • Update butterfly network (#5627)
  • Collect worker task metrics (#5648)
  • Correctly format disputer log (#5716)
  • Log block CID in the large delay warning (#5704)
  • Move api client builders to a cliutil package (#5728)
  • Implement net peers --extended (#5734)
  • Command to extend sector expiration (#5666)
  • garbage collect hotstore after compaction (#5744)
  • tune badger gc to repeatedly gc the value log until there is no rewrite (#5745)
  • Add configuration option for pubsub IPColocationWhitelist subnets (#5735)
  • hot/cold blockstore segregation (aka. splitstore) (#4992)
  • Customize verifreg root key and remainder account when making genesis (#5730)
  • chore: update go-graphsync to 0.6.0 (#5746)
  • Add connmgr metadata to NetPeerInfo (#5749)
  • test: attempt to make the splitstore test deterministic (#5750)
  • Feat/api no dep build (#5729)
  • Fix bootstrapper profile setting (#5756)
  • Check liveness of sectors when processing termination batches (#5759)
  • Configurable storage path storage limit (#5624)
  • miner: Config to disable owner/worker address fallback (#5620)
  • Fix TestUnpadReader on Go 1.16 (#5761)
  • Metadata datastore log (#5755)
  • Remove the SR2 stats, leave just the network totals (#5757)
  • fix: wait a bit before starting to compute window post proofs (#5764)
  • fix: retry proof when randomness changes (#5768)

1.5.0 / 2021-02-23

This is a mandatory release of Lotus that introduces the fifth upgrade to the Filecoin network. The network upgrade occurs at height 550321, before which time all nodes must have updated to this release (or later). At this height, v3 specs-actors will take effect, which in turn implements the following two FIPs:

  • FIP-0007 h/amt-v3 which improves the performance of the Filecoin HAMT and AMT.
  • FIP-0010 off-chain Window PoSt Verification which reduces the gas consumption of SubmitWindowedPoSt messages significantly by optimistically accepting Window PoSt proofs without verification, and allowing them to be disputed later by off-chain verifiers.

Note that the integration of v3 actors was already completed in 1.4.2, this upgrade simply sets the epoch for the upgrade to occur.

Disputer

FIP-0010 introduces the ability to dispute bad Window PoSts. Node operators are encouraged to run the new Lotus disputer alongside their Lotus daemons. For more information, see the announcement here.

Changes

  • #5341 Add a LOTUS_DISABLE_V3_ACTOR_MIGRATION envvar
    • Setting this envvar to 1 disables the v3 actor migration, should only be used in the event of a failed migration

1.4.2 / 2021-02-17

This is a large, and highly recommended, optional release with new features and improvements for lotus miner and deal-making UX. The release also integrates v3 specs-actors, which implements two FIPs:

  • FIP-0007 h/amt-v3 which improves the performance of the Filecoin HAMT and AMT.
  • FIP-0010 off-chain Window PoSt Verification which reduces the gas consumption of SubmitWindowedPoSt messages significantly by optimistically accepting Window PoSt proofs without verification, and allowing them to be disputed later by off-chain verifiers.

Note that this release does NOT set an upgrade epoch for v3 actors to take effect. That will be done in the upcoming 1.5.0 release.

New Features

  • #5341 Added sector termination API and CLI
    • Run lotus-miner sectors terminate
  • #5342 Added CLI for using a multisig wallet as miner's owner address
    • See how to set it up here
  • #5363, #5418, #5476, #5459 Integrated spec-actor v3
    • #5472 Generate actor v3 methods for pond
  • #5379 Added WindowPoSt disputer
  • #5309 Batch multiple deals in one PublishStorageMessages
    • #5411 Handle batch PublishStorageDeals message in sealing recovery
    • #5505 Exclude expired deals from batching in PublishStorageDeals messages
    • Added PublishMsgPeriod and MaxDealsPerPublishMsg to miner Dealmaking configuration. See how they work here.
    • #5538, #5549 Added a command to list pending deals and force publish messages.
      • Run lotus-miner market pending-publish
    • #5428 Moved waiting for PublishStorageDeals messages' receipt from markets to lotus
  • #5510 Added nerpanet build option
    • To build nerpanet, run make nerpanet
  • #5433 Added AlwaysKeepUnsealedCopy option to the miner configuration
  • #5520 Added MsigGetPending to get pending transactions for multisig wallets
  • #5219 Added interactive mode for lotus-wallet
  • 5529 Added support for minder nodes in lotus-shed rpc util

Bug Fixes

  • #5210 Miner should not dial client on restart
  • #5403 When estimating GasLimit only apply prior messages up to the nonce
  • #5410 Fix the calibnet build option
  • #5492 Fixed has for ipfsbstore for non-existing blocks
  • #5361 Fixed retrieval hangs when using IpfsOnlineMode=true
  • #5493 Fixed retrieval failure when price-per-byte is zero
  • #5506 Fixed contexts in the storage adpater
  • #5515 Properly wire up StateReadState on gateway API
  • #5582 Fixed error logging format strings
  • #5614 Fixed websocket reconnecting handling

Improvements

  • #5389 Show verified indicator for ./lotus-miner storage-deals list
  • #5229 Show power for verified deals in ./lotus-miner setocr list
  • #5407 Added explicit check of the miner address protocol
  • #5399 watchdog: increase heapprof capture threshold to 90%
  • #5398 storageadapter: Look at precommits on-chain since deal publish msg
  • #5470 Added --no-timing option for ./lotus state compute-state --html
  • #5417 Storage Manager: Always unseal full sectors
  • #5393 Switched to filecoin-ffi bls api for bls signatures
  • #5380 Refactor deals API tests
  • #5397 Fixed a flake in the sync manager edge case test
  • #5406 Added a test to ensure a correct window post cannot be disputed
  • #5294 Added jobs to build Lotus docker image and push it to AWS ECR
  • #5387 Added network info(mainnet|calibnet) in version
  • #5497 Export metric for lotus-gateaway
  • #4950 Removed bench policy
  • #5047 Improved the UX for ./lotus-shed bitfield enc
  • #5282 Snake a context through the chian blockstore creation
  • #5350 Avoid using mp.cfg directrly to prevent race condition
  • #5449 Documented the block-header better
  • #5404 Added retrying proofs if an incorrect one is generated
  • #4545 Made state tipset usage consistent in the API
  • #5540 Removed unnecessary database reads in validation check
  • #5554 Fixed build lotus-soup CI job
  • #5552 Updated CircleCI to halt gracefully
  • #5555 Cleanup and add docstrings of node builder
  • #5564 Stopped depending on gocheck with gomod
  • #5574 Updated CLI UI
  • #5570 Added code CID to StateReadState return object
  • #5565 Added storageadapter.PublishMsgConfig to miner in testkit for lotus-soup testplan
  • #5571 Added lotus-seed gensis car to generate lotus block for devnets
  • #5613 Check format in client commP util
  • #5507 Refactored coalescing logic into its own function and take both cancellation sets into account
  • #5592 Verify FFI version before building

Dependency Updates

Network Version v10 Upgrade

  • #5473 Merged staging branch for v1.5.0
  • #5603 Set nerpanet's upgrade epochs up to v3 actors
  • #5471, #5456 Set calibration net actor v3 migration epochs for testing
  • #5434 Implemented pre-migration framework
  • #5476 Tune migration

1.4.1 / 2021-01-20

This is an optional Lotus release that introduces various improvements to the sealing, mining, and deal-making processes. In particular, #5341 introduces the ability for Lotus miners to terminate sectors.

Changes

Core Lotus

  • fix(sync): enforce ForkLengthThreshold for synced chain (#5182)
  • introduce memory watchdog; LOTUS_MAX_HEAP (#5101)
  • Skip bootstrapping if no peers specified (#5301)
  • Chainxchg write response timeout (#5254)
  • update NewestNetworkVersion (#5277)
  • fix(sync): remove checks bypass when we submit the block (#4192)
  • chore: export vm.ShouldBurn (#5355)
  • fix(sync): enforce fork len when changing head (#5244)
  • Use 55th percentile instead of median for gas-price (#5369)
  • update go-libp2p-pubsub to v0.4.1 (#5329)

Sealing

  • Sector termination support (#5341)
  • update weight canSeal and canStore when attach (https://github.com/filecoin-project/lotus/pull/5242/files)
  • sector-storage/mock: improve mocked readpiece (#5208)
  • Fix deadlock in runWorker in sched_worker.go (#5251)
  • Skip checking terminated sectors provable (#5217)
  • storagefsm: Fix unsealedInfoMap.lk init race (#5319)
  • Multicore AddPiece CommP (#5320)
  • storagefsm: Send correct event on ErrExpiredTicket in CommitFailed (#5366)
  • expose StateSearchMessage on gateway (#5382)
  • fix FileSize to return correct disk usage recursively (#5384)

Dealmaking

  • Better error message when withdrawing funds (#5293)
  • add verbose for list transfers (#5259)
  • cli - rename client info to client balances (#5304)
  • Better CLI for wallet market withdraw and client info (#5303)

UX

  • correct flag usages for replace cmd (#5255)
  • lotus state call will panic (#5275)
  • fix get sector bug (#4976)
  • feat: lotus wallet market add (adds funds to storage market actor) (#5300)
  • Fix client flag parsing in client balances cli (#5312)
  • delete slash-consensus miner (#4577)
  • add fund sufficient check in send (#5252)
  • enable parse and shorten negative FIL values (#5315)
  • add limit and rate for chain noise (#5223)
  • add bench env print (#5222)
  • Implement full-node restore option (#5362)
  • add color for token amount (#5352)
  • correct log in maybeUseAddress (#5359)
  • add slash-consensus from flag (#5378)

Testing

  • tvx extract: more tipset extraction goodness (#5258)
  • Fix race in blockstore test suite (#5297)

Build & Networks

  • Remove LOTUS_DISABLE_V2_ACTOR_MIGRATION envvar (#5289)
  • Create a calibnet build option (#5288)
  • Calibnet: Set Orange epoch (#5325)

Management

  • Update SECURITY.md (#5246)
  • README: Contribute section (#5330)
  • README: refine Contribute section (#5331)
  • Add misc tooling to codecov ignore list (#5347)

1.4.0 / 2020-12-19

This is a MANDATORY hotfix release of Lotus that resolves a chain halt at height 336,459 caused by nondeterminism in specs-actors. The fix is to update actors to 2.3.3 in order to incorporate this fix filecoin-project/specs-actors#1334.

1.3.0 / 2020-12-16

This is a mandatory release of Lotus that introduces the third post-liftoff upgrade to the Filecoin network. The network upgrade occurs at height 343200, before which time all nodes must have updated to this release (or later). The change that breaks consensus is an implementation of FIP-0009(https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0009.md).

Changes

  • Disable gas burning for window post messages (#5200)
  • fix lock propose (#5197)

1.2.3 / 2020-12-15

This is an optional Lotus release that introduces many performance improvements, bugfixes, and UX improvements.

Changes

  • When waiting for deal commit messages, ignore unsuccessful messages (#5189)
  • Bigger copy buffer size for stores (#5177)
  • Print MinPieceSize when querying ask (#5178)
  • Optimize miner info & sectors list loading (#5176)
  • Allow miners to filter (un)verified deals (#5094)
  • Fix curSealing out of MaxSealingSectors limit (#5166)
  • Add mpool pending from / to filter (#5169)
  • Add metrics for delayed blocks (#5171)
  • Fix PushUntrusted publishing -- the message is local (#5173)
  • Avoid potential hang in events API when starting event listener (#5159)
  • Show data transfer ID in list-deals (#5150)
  • Fix events API mutex locking (#5160)
  • Message pool refactors (#5162)
  • Fix lotus-shed cid output (#5072)
  • Use FundManager to withdraw funds, add MarketWithdraw API (#5112)
  • Add keygen outfile (#5118)
  • Update sr2 stat aggregation (#5114)
  • Fix miner control address lookup (#5119)
  • Fix send with declared nonce 0 (#5111)
  • Introduce memory watchdog; LOTUS_MAX_HEAP (#5101)
  • Miner control address config for (pre)commits (#5103)
  • Delete repeated call func (#5099)
  • lotus-shed ledger show command (#5098)
  • Log a message when there aren't enough peers for sync (#5105)
  • Miner code cleanup (#5107)

1.2.2 / 2020-12-03

This is an optional Lotus release that introduces various improvements to the mining logic and deal-making workflow, as well as several new UX features.

Changes

  • Set lower feecap on PoSt messages with low balance (#4217)
  • Add options to set BlockProfileRate and MutexProfileFraction (#4140)
  • Shed/post find (#4355)
  • tvx extract: make it work with secp messages.(#4583)
  • update go from 1.14 to 1.15 (#4909)
  • print multiple blocks from miner cid (#4767)
  • Connection Gater support (#4849)
  • just return storedask.NewStoredAsk to reduce unuseful code (#4902)
  • add go main version (#4910)
  • Use version0 when pre-sealing (#4911)
  • optimize code UpgradeTapeHeight and go fmt (#4913)
  • CLI to get network version (#4914)
  • Improve error for ActorsVersionPredicate (#4915)
  • upgrade to go-fil-markets 1.0.5 (#4916)
  • bug:replace with func recordFailure (#4919)
  • Remove unused key (#4924)
  • change typeV7 make len (#4943)
  • emit events for peer disconnections and act upon them in the blocksync tracker (#4754)
  • Fix lotus bench error (#4305)
  • Reduce badger ValueTreshold to 128 (#4629)
  • Downgrade duplicate nonce logs to debug (#4933)
  • readme update golang version from 1.14.7 to 1.15.5 (#4974)
  • add data transfer logging (#4975)
  • Remove all temp file generation for deals (#4929)
  • fix get sector bug (#4976)
  • fix nil pointer in StateSectorPreCommitInfo (#4082)
  • Add logging on data-transfer to miner (#4980)
  • bugfix: fixup devnet script (#4956)
  • modify for unsafe (#4024)
  • move testground/lotus-soup testplan from oni to lotus (#4727)
  • Setup remainder msig signers when parsing genesis template (#4904)
  • Update JSON RPC server to enforce a maximum request size (#4923)
  • New SR-specific lotus-shed cmd (#4971)
  • update index to sectorNumber (#4987)
  • storagefsm: Fix expired ticket retry loop (#4876)
  • add .sec scale to measurements; humanize for metric tags (#4989)
  • Support seal proof type switching (#4873)
  • fix log format (#4984)
  • Format workerID as string (#4973)
  • miner: Winning PoSt Warmup (#4824)
  • Default StartDealParams's fast retrieval field to true over JSON (#4998)
  • Fix actor not found in chain inspect-usage (#5010)
  • storagefsm: Improve new deal sector logic (#5007)
  • Configure simultaneous requests (#4996)
  • miner: log winningPoSt duration separately (#5005)
  • fix wallet dead lock (#5002)
  • Update go-jsonrpc to v0.1.2 (#5015)
  • markets - separate watching for pre-commit from prove-commit (#4945)
  • storagefsm: Add missing planners (#5016)
  • fix wallet delete address where address is default (#5019)
  • worker: More robust remote checks (#5008)
  • Add new booststrappers (#4007)
  • add a tooling to make filecoin accounting a little easier (#5025)
  • fix: start a new line in print miner-info to avoid ambiguous display (#5029)
  • Print gas limit sum in mpool stat (#5035)
  • Fix chainstore tipset leak (#5037)
  • shed rpc: Allow calling with args (#5036)
  • Make --gas-limit optional in mpool replace cli (#5059)
  • client list-asks --by-ping (#5060)
  • Ledger signature verification (#5068)
  • Fix helptext for verified-deal default in client deal (#5074)
  • worker: Support setting task types at runtime (#5023)
  • Enable Callers tracing when GasTracing is enabled (#5080)
  • Cancel transfer cancels storage deal (#5032)
  • Sector check command (#5041)
  • add commp-to-cid base64 decode (#5079)
  • miner info cli improvements (#5083)
  • miner: Add slow mode to proving check (#5086)
  • Error out deals that are not activated by proposed deal start epoch (#5061)

1.2.1 / 2020-11-20

This is a very small release of Lotus that fixes an issue users are experiencing when importing snapshots. There is no need to upgrade unless you experience an issue with creating a new datastore directory in the Lotus repo.

Changes

  • fix blockstore directory not created automatically (#4922)
  • WindowPoStScheduler.checkSectors() delete useless judgment (#4918)

1.2.0 / 2020-11-18

This is a mandatory release of Lotus that introduces the second post-liftoff upgrade to the Filecoin network. The network upgrade occurs at height 265200, before which time all nodes must have updated to this release (or later). This release also bumps the required version of Go to 1.15.

The changes that break consensus are:

Other Changes

  • delayed pubsub subscribe for messages topic (#3646)
  • add chain base64 decode params (#4748)
  • chore(dep): update bitswap to fix an initialization race that could panic (#4855)
  • Chore/blockstore nits (#4813)
  • Print Consensus Faults in miner info (#4853)
  • Truncate genesis file before generating (#4851)
  • miner: Winning PoSt Warmup (#4824)
  • Fix init actor address map diffing (#4875)
  • Bump API versions to 1.0.0 (#4884)
  • Fix cid recording issue (#4874)
  • Speed up worker key retrieval (#4885)
  • Add error codes to worker return (#4890)
  • Update go to 1.15.5 (#4896)
  • Fix MaxSealingSectrosForDeals getting reset to 0 (#4879)
  • add sanity check for maximum block size (#3171)
  • Check (pre)commit receipt before other checks in failed states (#4712)
  • fix badger double open on daemon --import-snapshot; chainstore lifecycle (#4872)
  • Update to ipfs-blockstore 1.0.3 (#4897)
  • break loop when found warm up sector (#4869)
  • Tweak handling of bad beneficaries in DeleteActor (#4903)
  • cap maximum number of messages per block in selection (#4905)
  • Set Calico epoch (#4889)

1.1.3 / 2020-11-13

This is an optional release of Lotus that upgrades Lotus dependencies, and includes many performance enhancements, bugfixes, and UX improvements.

Highlights

  • Refactored much of the miner code (#3618), improving its recovery from restarts and overall sector success rate
  • Updated proofs to v5.3.0, which brings significant performance improvements
  • Updated markets to v1.0.4, which reduces failures due to reorgs (#4730) and uses the newly refactored fund manager (#4736)

Changes

Core Lotus

  • polish: add Equals method to MinerInfo shim (#4604)
  • Fix messagepool accounting (#4668)
  • Prep for gas balancing (#4651)
  • Reduce badger ValueThreshold to 128 (#4629)
  • Config for default max gas fee (#4652)
  • bootstrap: don't return early when one drand resolution fails (#4626)
  • polish: add ClaimsChanged and DiffClaims method to power shim (#4628)
  • Simplify chain event Called API (#4664)
  • Cache deal states for most recent old/new tipset (#4623)
  • Add miner available balance and power info to state miner info (#4618)
  • Call GetHeaviestTipSet() only once when syncing (#4696)
  • modify runtime gasUsed printf (#4704)
  • Rename builtin actor generators (#4697)
  • Move gas multiplier as property of pricelist (#4728)
  • polish: add msig pendingtxn diffing and comp (#4719)
  • Optional chain Bitswap (#4717)
  • rewrite sync manager (#4599)
  • async connect to bootstrappers (#4785)
  • head change coalescer (#4688)
  • move to native badger blockstore; leverage zero-copy View() to deserialize in-place (#4681)
  • badger blockstore: minor improvements (#4811)
  • Do not fail wallet delete because of pre-existing trashed key (#4589)
  • Correctly delete the default wallet address (#4705)
  • Reduce badger ValueTreshold to 128 (#4629)
  • predicates: Fast StateGetActor wrapper (#4835)

Mining

  • worker key should change when set sender found key not equal with the value on chain (#4595)
  • extern/sector-storage: fix GPU usage overwrite bug (#4627)
  • sectorstorage: Fix manager restart edge-case (#4645)
  • storagefsm: Fix GetTicket loop when the sector is already precommitted (#4643)
  • Debug flag to force running sealing scheduler (#4662)
  • Fix worker reenabling, handle multiple restarts in worker (#4666)
  • keep retrying the proof until we run out of sectors to skip (#4633)
  • worker: Commands to pause/resume task processing (#4615)
  • struct name incorrect (#4699)
  • optimize code replace strings with constants (#4769)
  • optimize pledge sector (#4765)
  • Track sealing processes across lotus-miner restarts (#3618)
  • Fix scheduler lockups after storage is freed (#4778)
  • storage: Track worker hostnames with work (#4779)
  • Expand sched-diag; Command to abort sealing calls (#4804)
  • miner: Winning PoSt Warmup (#4824)
  • docsgen: Support miner/worker (#4817)
  • miner: Basic storage cleanup command (#4834)

Markets and Data Transfer

  • Flesh out data transfer features (#4572)
  • Fix memory leaks in data transfer (#4619)
  • Handle deal id changes in OnDealSectorCommitted (#4730)
  • Refactor FundManager (#4736)
  • refactor: integrate new FundManager (#4787)
  • Fix race in paych manager when req context is cancelled (#4803)
  • fix race in paych manager add funds (#4597)
  • Fix panic in FundManager (#4808)
  • Fix: dont crash on startup if funds migration fails (#4827)

UX

  • Make EarlyExpiration in sectors list less scary (#4600)
  • Add commands to change the worker key (#4513)
  • Expose ClientDealSize via CLI (#4569)
  • client deal: Cache CommD when creating multiple deals (#4535)
  • miner sectors list: flags for events/seal time (#4649)
  • make IPFS online mode configurable (#4650)
  • Add sync status to miner info command (#4669)
  • Add a StateDecodeParams method (#4105)
  • sched: Interactive RPC Shell (#4692)
  • Add api for getting status given a code (#4210)
  • Update lotus-stats with a richer cli (#4718)
  • Use TSK passed to GasEstimateGasLimit (#4739)
  • match data type for reward state api (#4745)
  • Add termination-estimate to get an estimation for how much a termination penalty will be (#4617)
  • Restrict ParseFIL input length (#4780)
  • cmd sectors commitIDs len debug (#4786)
  • Add client deal-stats CLI (#4788)
  • Modify printf format (#4795)
  • Updated msig inspect (#4533)
  • Delete the duplicate output (#4819)
  • miner: Storage list sectors command (#4831)
  • drop a few logs down to debug (#4832)

Testing and Tooling

  • refactor: share code between CLI tests (#4598)
  • Fix flaky TestCLIDealFlow (#4608)
  • Fix flaky testMiningReal (#4609)
  • Add election run-dummy command (#4498)
  • Fix .gitmodules (#4713)
  • fix metrics wiring.(#4691)
  • shed: Util for creating ID CIDs (#4726)
  • Run kumquat upgrade on devnets (#4734)
  • Make pond work again (#4775)
  • lotus-stats: fix influx flags (#4810)
  • 2k sync BootstrapPeerThreshold (#4797)
  • test for FundManager panic to ensure it is fixed (#4825)
  • Stop mining at the end of tests (#4826)
  • Make some logs quieter (#4709)

Dependencies

  • update filecoin-ffi in go mod (#4584)
  • Update FFI (#4613)
  • feat: integrate new optional blst backend and verification optimizations from proofs (#4630)
  • Use https for blst submodule (#4710)
  • Update go-bitfield (#4756)
  • Update Yamux (#4758)
  • Update to latest go-bitfield (#4793)
  • Update to latest go-address (#4798)
  • update libp2p for stream interface changes (#4814)

1.1.2 / 2020-10-24

This is a patch release of Lotus that builds on the fixes involving worker keys that was introduced in v1.1.1. Miners and node operators should update to this release as soon as possible in order to ensure their blocks are propagated and validated.

Changes

  • Handle worker key changes correctly in runtime (#4579)

1.1.1 / 2020-10-24

This is a patch release of Lotus that addresses some issues caused by when miners change their worker keys. Miners and node operators should update to this release as soon as possible, especially any miner who has changed their worker key recently.

Changes

  • Miner finder for interactive client deal CLI (#4504)
  • Disable blockstore bloom filter (#4512)
  • Add api for getting status given a code (#4210)
  • add batch api for push messages (#4236)
  • add measure datastore wrapper around bench chain datastore (#4302)
  • Look at block base fee for PCR (#4313)
  • Add a shed util to determine % of power that has won a block (#4318)
  • Shed/borked cmd (#4339)
  • optimize mining code (#4379)
  • heaviestTipSet reurning nil is a ok (#4523)
  • Remove most v0 actor imports (#4383)
  • Small chain export optimization (#4536)
  • Add block list to pcr (#4314)
  • Fix circ supply default in conformance (#4449)
  • miner: fix init --create-worker-key (#4475)
  • make push and addLocal atomic (#4500)
  • add some methods that oni needs (#4501)
  • MinerGetBaseInfo: if miner is not found in lookback, check current (#4508)
  • Delete wallet from local wallet cache (#4526)
  • Fix lotus-shed ledger list (#4521)
  • Manage sectors by size instead of proof type (#4511)
  • Feat/api request metrics wrapper (#4516)
  • Fix chain sync stopping to sync (#4541)
  • Use the correct lookback for the worker key when creating blocks (#4539)
  • Cleanup test initialization and always validate VRFs in tests (#4538)
  • Add a market WithdrawBalance CLI (#4524)
  • wallet list: Add market balance and ID address flags (#4555)
  • tvx simulate command; tvx extract --ignore-sanity-checks (#4554)
  • lotus-lite: CLI tests for lotus client commands (#4497)
  • lite-mode - market storage and retrieval clients (#4263)
  • Chore: update drand to v1.2.0 (#4420)
  • Fix random test failures (#4559)
  • Fix flaky TestTimedBSSimple (#4561)
  • Make wallet market withdraw usable with miner addresses (#4556)
  • Fix flaky TestChainExportImportFull (#4564)
  • Use older randomness for the PoSt commit on specs-actors version 2 (#4563)
  • shed: Commad to decode messages (#4565)
  • Fetch worker key from correct block on sync (#4573)

1.1.0 / 2020-10-20

This is a mandatory release that introduces the first post-liftoff upgrade to the Filecoin network. The changes that break consensus are an upgrade to specs-actors v2.2.0 at epoch 170000.

Changes

  • Introduce Network version 6 (#4506)
  • Update markets v1.0.0 (#4505)
  • Add some extra logging to try and debug sync issues (#4486)
  • Circle: Run tests for some subsystems separately (#4496)
  • Add a terminate sectors command to lotus-shed (#4507)
  • Add a comment to BlockMessages to address #4446 (#4491)

1.0.0 / 2020-10-19

It's 1.0.0! This is an optional release of Lotus that introduces some UX improvements to the 0.10 series.

This very small release is largely cosmetic, and intended to flag the code that the Filecoin mainnet was launched with.

API changes

  • StateMsgGasCost has been removed. The equivalent information can be gained by calling StateReplay.
  • A GasCost field has been added to the InvocResult type, meaning detailed gas costs will be returned when calling StateReplay, StateCompute, and StateCall.
  • The behaviour of StateReplay in response to an empty tipset key has been changed. Instead of simply using the heaviest tipset (which is almost guaranteed to be an unsuccessful replay), we search now search the chain for the tipset that included the message, and replay the message in that tipset (we fail if no such tipset is found).

Changes

  • Increase code coverage! (#4410)
  • Mpool: Don't block node startup loading messages (#4411)
  • Improve the UX of multisig approves (#4398)
  • Use build.BlockDelaySecs for deal start buffer (#4415)
  • Conformance: support multiple protocol versions (#4393)
  • Ensure msig inspect cli works with lotus-lite (#4421)
  • Add command to (slowly) prune lotus chain datastore (#3876)
  • Add WalletVerify to lotus-gateway (#4373)
  • Improve StateMsg APIs (#4429)
  • Add endpoints needed by spacegap (#4426)
  • Make audit balances capable of printing robust addresses (#4423)
  • Custom filters for retrieval deals (#4424)
  • Fix message list api (#4422)
  • Replace bootstrap peers (#4447)
  • Don't overwrite previously-configured maxPieceSize for a persisted ask (#4480)
  • State: optimize state snapshot address cache (#4481)