Skip to content

Latest commit

 

History

History
834 lines (618 loc) · 46 KB

CHANGELOG_0.x.md

File metadata and controls

834 lines (618 loc) · 46 KB

Lotus changelog v0.1.0 - v0.9.1

0.10.2 / 2020-10-14

This is an optional release of Lotus that updates markets to 0.9.1, which fixes an issue affecting deals that were mid-transfer when the node was upgraded to 0.9.0. This release also includes some tweaks to default gas values and minor performance improvements.

Changes

  • Use updated stored ask API (#4384)
  • tvx: trace puts to blockstore for inclusion in CAR. (#4278)
  • Add propose remove (#4311)
  • Update to 0.9.1 bugfix release (#4402)
  • Update drand endpoints (#4125)
  • fix: return true when deadlines changed (#4403)
  • sync wait --watch (#4396)
  • reduce garbage in blockstore (#4406)
  • give the TimeCacheBS tests a bit more time (#4407)
  • Improve gas defaults (#4408)
  • Change default gas premium to for 10 block inclusion (#4222)

0.10.1 / 2020-10-14

This is an optional release of Lotus that updates markets to 0.9.0, which adds the ability to restart data transfers. This release also introduces Ledger support, and various UX improvements.

Changes

  • Test the tape upgrade (#4328)
  • Adding in Ledger support (#4290)
  • Improve the UX for lotus-miner sealing workers (#4329)
  • Add a CLI tool for miner's to repay debt (#4319)
  • Rename params_testnet to params_mainnet (#4336)
  • Use seal-duration in calculating the earliest StartEpoch (#4337)
  • Reject deals that are > 7 days in the future in the BasicDealFilter (#4173)
  • Add an API endpoint to calculate the exact circulating supply (#4148)
  • lotus-pcr: ignore all other market messages (#4341)
  • Add message CID to InvocResult (#4382)
  • types: Add CID fields to messages in json marshalers (#4338)
  • fix(sync state): set state height to actual tipset height (#4347)
  • Fix off by one tipset in searchBackForMsg (#4367)
  • fix a panic on startup when we fail to load the tipset (#4376)
  • Avoid having the same message CID show up in execution traces (#4350)
  • feat(markets): update markets 0.9.0 and add data transfer restart (#4363)

0.10.0 / 2020-10-12

This is a consensus-breaking hotfix that addresses an issue in specs-actors v2.0.3 that made it impossible to pledge new 32GiB sectors. The change in Lotus is to update to actors v2.1.0, behind the new network version 5.

Changes

  • make pledge test pass with the race detector (#4291)
  • fix a race in tipset cache usage (#4282)
  • add an api for removing multisig signers (#4274)
  • cli: Don't output errors to stdout (#4298)
  • Fix panic in wallet export when key is not found (#4299)
  • Dump the block validation cache whenever we perform an import (#4287)
  • Fix two races (#4301)
  • sync unmark-bad --all (#4296)
  • decode parameters for multisig transactions in inspect (#4312)
  • Chain is love (#4321)
  • lotus-stats: optimize getting miner power (#4315)
  • implement tape upgrade (#4322)

0.9.1 / 2020-10-10

This release fixes an issue which may cause the actors v2 migration to compute the state incorrectly when more than one migration is running in parallel.

Changes

  • Make concurrent actor migrations safe (#4293)
  • Remote wallet backends (#3583)
  • Track funds in FundMgr correctly in case of AddFunds failing (#4273)
  • Partial lite-node mode (#4095)
  • Fix potential infinite loop in GetBestMiningCandidate (#3444)
  • sync wait: Handle processed message offset (#4253)
  • Add some new endpoints for querying Msig info (#4250)
  • Update markets v0.7.1 (#4254)
  • Optimize SearchForMessage and GetReceipt (#4246)
  • Use FIL instead of attoFIL in CLI more consistently (#4249)
  • fix: clash between daemon --api flag and cli tests (#4241)
  • add more info to chain sync lookback failure (#4245)
  • Add message counts to inspect chain output (#4230)

0.9.0 / 2020-10-07

This consensus-breaking release of Lotus upgrades the actors version to v2.0.0. This requires migrating actor state from v0 to v2. The changes that break consensus are:

  • Introducing v2 actors and its migration (#3936)
  • Runtime's Receiver() should only return ID addresses (#3589)
  • Update miner eligibility checks for v2 actors (#4188)
  • Add funds that have left FilReserve to circ supply (#4160)
  • Set WinningPoStSectorSetLookback to finality post-v2 actors (#4190)
  • fix: error when actor panics directly (#3697)

Changes

Dependencies

  • Update go-bitfield (#4171)
  • update the AMT implementation (#4194)
  • Update to actors v0.2.1 (#4199)

Core Lotus

  • Paych: fix voucher amount verification (#3821)
  • Cap market provider messages (#4141)
  • Run fork function after cron for null block safety (#4114)
  • use bitswap sessions when fetching messages, and cancel them (#4142)
  • relax pubsub IPColocationFactorThreshold to 5 (#4183)
  • Support addresses with mainnet prefixes (#4186)
  • fix: make message signer nonce generation transactional (#4165)
  • build: Env var to keep test address output (#4213)
  • make vm.EnableGasTracing public (#4214)
  • introduce separate state-tree versions (#4197)
  • reject explicit "calls" at the upgrade height (#4231)
  • return an illegal actor error when we see an unsupported actor version (#4232)
  • Set head should unmark blocks as valid (https://gist.github.com/travisperson/3c7cddd77a33979a519ccef4e6515f20)

Mining

  • Increased ExpectedSealDuration and WaitDealsDelay (#3743)
  • Miner backup/restore commands (#4133)
  • lotus-miner: add more help text to storage / attach (#3961)
  • Reject deals that are > 7 days in the future in the BasicDealFilter (#4173)
  • feat(miner): add miner deadline diffing logic (#4178)

UX

  • Improve the UX for replacing messages (#4134)
  • Add verified flag to interactive deal creation (#4145)
  • Add command to (slowly) prune lotus chain datastore (#3876)
  • Some helpers for verifreg work (#4124)
  • Always use default 720h for setask duration and hide the duration param option (#4077)
  • Convert ID addresses to key addresses before checking wallet (#4122)
  • add a command to view block space utilization (#4176)
  • allow usage inspection on a chain segment (#4177)
  • Add mpool stats for base fee (#4170)
  • Add verified status to api.DealInfo (#4153)
  • Add a CLI command to set a miner's owner address (#4189)

Tooling and validation

  • Lotus-pcr: add recover-miners command (#3714)
  • MpoolPushUntrusted API for gateway (#3915)
  • Test lotus-miner info all (#4166)
  • chain export: Error with unfinished exports (#4179)
  • add printf in TestWindowPost (#4043)
  • add trace wdpost (#4020)
  • Fix noncefix (#4202)
  • Lotus-pcr: Limit the fee cap of messages we will process, refund gas fees for windowed post and storage deals (#4198)
  • Fix pond (#4203)
  • allow manual setting of noncefix fee cap (#4205)
  • implement command to get execution traces of any message (#4200)
  • conformance: minor driver refactors (#4211)
  • lotus-pcr: ignore all other messages (#4218)
  • lotus-pcr: zero refund (#4229)

Contributors

The following contributors had 5 or more commits go into this release. We are grateful for every contribution!

Contributor Commits Lines ±
Stebalien 84 +3425/-2287
magik6k 41 +2121/-506
arajasek 39 +2467/-424
Kubuxu 25 +2344/-775
raulk 21 +287/-196
whyrusleeping 13 +727/-71
hsanjuan 13 +5886/-7956
dirkmc 11 +2634/-576
travisperson 8 +923/-202
ribasushi 6 +188/-128
zgfzgf 5 +21/-17

0.8.1 / 2020-09-30

This optional release of Lotus introduces a new version of markets which switches to CBOR-map encodings, and allows datastore migrations. The release also introduces several improvements to the mining process, a few performance optimizations, and a battery of UX additions and enhancements.

Changes

Dependencies

  • Markets 0.7.0 with updated data stores (#4089)
  • Update ffi to code with blst fixes (#3998)

Core Lotus

  • Fix GetPower with no miner address (#4049)
  • Refactor: Move nonce generation out of mpool (#3970)

Performance

  • Implement caching syscalls for import-bench (#3888)
  • Fetch tipset blocks in parallel (#4074)
  • Optimize Tipset equals() (#4056)
  • Make state transition in validation async (#3868)

Mining

  • Add trace window post (#4020)
  • Use abstract types for Dont recompute post on revert (#4022)
  • Fix injectNulls logic in test miner (#4058)
  • Fix potential panic in FinalizeSector (#4092)
  • Don't recompute post on revert (#3924)
  • Fix some failed precommit handling (#3445)
  • Add --no-swap flag for worker (#4107)
  • Allow some single-thread tasks to run in parallel with PC2/C2 (#4116)

UX

  • Add an envvar to set address network version (#4028)
  • Add logging to chain export (#4030)
  • Add JSON output to state compute (#4038)
  • Wallet list CLI: Print balances/nonces (#4088)
  • Added an option to show or not show sector info for lotus-miner info (#4003)
  • Add a command to import an ipld object into the chainstore (#3434)
  • Improve the lotus-shed dealtracker (#4051)
  • Docs review and re-organization (#3431)
  • Fix wallet list (#4104)
  • Add an endpoint to validate whether a string is a well-formed address (#4106)
  • Add an option to set config path (#4103)
  • Add printf in TestWindowPost (#4043)
  • Improve miner sectors list UX (#4108)

Tooling

  • Move policy change to seal bench (#4032)
  • Add back network power to stats (#4050)
  • Conformance: Record and feed circulating supply (#4078)
  • Snapshot import progress bar, add HTTP support (#4070)
  • Add lotus shed util to validate a tipset (#4065)
  • tvx: a test vector extraction and execution tool (#4064)

Bootstrap

  • Add new bootstrappers (#4007)
  • Add Glif node to bootstrap peers (#4004)
  • Add one more node located in China (#4041)
  • Add ipfsmain bootstrapper (#4067)

0.8.0 / 2020-09-26

This consensus-breaking release of Lotus introduces an upgrade to the network. The changes that break consensus are:

  • Upgrading to specs-actors v0.9.11, which reduces WindowPoSt faults per FIP 0002 to reduce cost for honest miners with occasional faults (see filecoin-project/specs-actors#1181)
  • Revisions to some cryptoeconomics and network params

This release also updates go-fil-markets to fix an incompatibility issue between v0.7.2 and earlier versions.

Changes

Dependencies

  • Update spec actors to 0.9.11 (#4039)
  • Update markets to 0.6.3 (#4013)

Core Lotus

  • Network upgrade (#4039)
  • Fix AddSupportedProofTypes (#4033)
  • Return an error when we fail to find a sector when checking sector expiration (#4026)
  • Batch blockstore copies after block validation (#3980)
  • Remove a misleading miner actor abstraction (#3977)
  • Fix out-of-bounds when loading all sector infos (#3976)
  • Fix break condition in the miner (#3953)

UX

  • Correct helptext around miners setting ask (#4009)
  • Make sync wait nicer (#3991)

Tooling and validation

  • Small adjustments following network upgradability changes (#3996)
  • Add some more big pictures stats to stateroot stat (#3995)
  • Add some actors policy setters for testing (#3975)

Contributors

The following contributors had 5 or more commits go into this release. We are grateful for every contribution!

Contributor Commits Lines ±
arajasek 66 +3140/-1261
Stebalien 64 +3797/-3434
magik6k 48 +1892/-976
raulk 40 +2412/-1549
vyzo 22 +287/-196
alanshaw 15 +761/-146
whyrusleeping 15 +736/-52
hannahhoward 14 +1237/-837
anton 6 +32/-8
travisperson 5 +502/-6
Frank 5 +78/-39
Jennifer 5 +148/-41

0.7.2 / 2020-09-23

This optional release of Lotus introduces a major refactor around how a Lotus node interacts with code from the specs-actors repo. We now use interfaces to read the state of actors, which is required to be able to reason about different versions of actors code at the same time.

Additionally, this release introduces various improvements to the sync process, as well as changes to better the overall UX experience.

Changes

Core Lotus

  • Network upgrade support (#3781)
  • Upgrade markets to v0.6.2 (#3974)
  • Validate chain sync response indices when fetching messages (#3939)
  • Add height diff to sync wait (#3926)
  • Replace Requires with Wants (#3898)
  • Update state diffing for market actor (#3889)
  • Parallel fetch for sync (#3887)
  • Fix SectorState (#3881)

User Experience

  • Add basic deal stats api server for spacerace slingshot (#3963)
  • When doing sectors update-state, show a list of existing states if user inputs an invalid one (#3944)
  • Fix lotus-miner storage find error (#3927)
  • Log shutdown method for lotus daemon and miner (#3925)
  • Update build and setup instruction link (#3919)
  • Add an option to hide removed sectors from sectors list output (#3903)

Testing and validation

  • Add init.State#Remove() for testing (#3971)
  • lotus-shed: add consensus check command (#3933)
  • Add keyinfo verify and jwt token command to lotus-shed (#3914)
  • Fix conformance gen (#3892)

0.7.1 / 2020-09-17

This optional release of Lotus introduces some critical fixes to the window PoSt process. It also upgrades some core dependencies, and introduces many improvements to the mining process, deal-making cycle, and overall User Experience.

Changes

Some notable improvements:

  • Correctly construct params for SubmitWindowedPoSt messages (#3909)
  • Skip sectors correctly for Window PoSt (#3839)
  • Split window PoST submission into multiple messages (#3689)
  • Improve journal coverage (#2455)
  • Allow retrievals while sealing (#3778)
  • Don't prune locally published messages (#3772)
  • Add get-ask, set-ask retrieval commands (#3886)
  • Consistently name winning and window post in logs (#3873))
  • Add auto flag to mpool replace (#3752))

Dependencies

  • Upgrade markets to v0.6.1 (#3906)
  • Upgrade specs-actors to v0.9.10 (#3846)
  • Upgrade badger (#3739)

0.7.0 / 2020-09-10

This consensus-breaking release of Lotus is designed to test a network upgrade on the space race testnet. The changes that break consensus are:

  • Upgrading the Drand network used from the test Drand network to the League of Entropy main drand network. This is the same Drand network that will be used in the Filecoin mainnet.
  • Upgrading to specs-actors v0.9.8, which adds a new method to the Multisig actor.

Changes

Core Lotus

  • Fix IsAncestorOf (#3717)
  • Update to specs-actors v0.9.8 (#3725)
  • Increase chain throughput by 20% (#3732)
  • Updare to go-libp2p-pubsub master (#3735)
  • Drand upgrade (#3670)
  • Multisig API additions (#3590)

Storage Miner

  • Increase the number of times precommit2 is attempted before moving back to precommit1 (#3720)

Message pool

  • Relax mpool add strictness checks for local pushes (#3724)

Maintenance

  • Fix devnets (#3712)
  • Fix(chainwatch): compare prev miner with cur miner (#3715)
  • CI: fix statediff build; make optional (#3729)
  • Feat: Chaos abort (#3733)

Contributors

The following contributors had commits go into this release. We are grateful for every contribution!

Contributor Commits Lines ±
arajasek 28 +1144/-239
Kubuxu 19 +452/-261
whyrusleeping 13 +456/-87
vyzo 11 +318/-20
raulk 10 +1289/-350
magik6k 6 +188/-55
dirkmc 3 +31/-8
alanshaw 3 +176/-37
Stebalien 2 +9/-12
lanzafame 1 +1/-1
frrist 1 +1/-1
mishmosh 1 +1/-1
nonsense 1 +1/-0

0.6.2 / 2020-09-09

This release introduces some critical fixes to message selection and gas estimation logic. It also adds the ability for nodes to mark a certain tipset as checkpointed, as well as various minor improvements and bugfixes.

Changes

Messagepool

  • Warn when optimal selection fails to pack a block and we fall back to random selection (#3708)
  • Add basic command for printing gas performance of messages in the mpool (#3701)
  • Adjust optimal selection to always try to fill blocks (#3685)
  • Fix very minor bug in repub baseFeeLowerBound (#3663)
  • Add an auto flag to mpool replace (#3676)
  • Fix mpool optimal selection packing failure (#3698)

Core Lotus

  • Don't use latency as initial estimate for blocksync (#3648)
  • Add niceSleep 1 second when drand errors (#3664)
  • Fix isChainNearSync check in block validator (#3650)
  • Add peer to peer manager before fetching the tipset (#3667)
  • Add StageFetchingMessages to sync status (#3668)
  • Pass tipset through upgrade logic (#3673)
  • Allow nodes to mark tipsets as checkpointed (#3680)
  • Remove hard-coded late-fee in window PoSt (#3702)
  • Gas: Fix median calc (#3686)

Storage

  • Storage manager: bail out with an error if unsealed cid is undefined (#3655)
  • Storage: return true from Sealer.ReadPiece() on success (#3657)

Maintenance

  • Resolve lotus, test-vectors, statediff dependency cycle (#3688)
  • Paych: add docs on how to use paych status (#3690)
  • Initial CODEOWNERS (#3691)

0.6.1 / 2020-09-08

This optional release introduces a minor improvement to the sync process, ensuring nodes don't fall behind and then resync.

Changes

  • Update test-vectors (#3645)
  • Revert "only subscribe to pubsub topics once we are synced" (#3643)

0.6.0 / 2020-09-07

This consensus-breaking release of Lotus is designed to test a network upgrade on the space race testnet. The changes that break consensus are:

This release also introduces many improvements to Lotus! Among them are a new version of go-fil-markets that supports non-blocking retrieval, various spam reduction measures in the messagepool and p2p logic, and UX improvements to payment channels, dealmaking, and state inspection.

Changes

Core Lotus and dependencies

  • Implement faucet funds reallocation logic (#3632)
  • Network upgrade: Upgrade to correct fork threshold (#3628)
  • Update to specs 0.9.7 and markets 0.6.0 (#3627)
  • Network upgrade: Perform base fee tamping (#3623)
  • Chain events: if cache best() is nil, return chain head (#3611)
  • Update to specs actors v0.9.6 (#3603)

Messagepool

  • Temporarily allow negative chains (#3625)
  • Improve publish/republish logic (#3592)
  • Fix selection bug; priority messages were not included if other chains were negative (#3580)
  • Add defensive check for minimum GasFeeCap for inclusion within the next 20 blocks (#3579)
  • Add additional info about gas premium (#3578)
  • Fix GasPremium capping logic (#3552)

Payment channels

  • Get available funds by address or by from/to (#3547)
  • Create lotus paych status command (#3523)
  • Rename CLI command from "paych get" to "paych add-funds" (#3520)

Peer-to-peer

  • Only subscribe to pubsub topics once we are synced (#3602)
  • Reduce mpool add failure log spam (#3562)
  • Republish messages even if the chains have negative performance(#3557)
  • Adjust gossipsub gossip factor (#3556)
  • Integrate pubsub Random Early Drop (#3518)

Miscellaneous

  • Fix panic in OnDealExpiredSlashed (#3553)
  • Robustify state manager against holes in actor method numbers (#3538)

UX

  • VM: Fix an error message (#3608)
  • Documentation: Batch replacement,update lotus-storage-miner to lotus-miner (#3571)
  • CLI: Robust actor lookup (#3535)
  • Add agent flag to net peers (#3534)
  • Add watch option to storage-deals list (#3527)

Testing & tooling

  • Decommission chain-validation (#3606)
  • Metrics: add expected height metric (#3586)
  • PCR: Use current tipset during refund (#3570)
  • Lotus-shed: Add math command (#3568)
  • PCR: Add tipset aggergation (#3565 Fix broken paych tests (#3551)
  • Make chain export ~1000x times faster (#3533)
  • Chainwatch: Stop SyncIncomingBlocks from leaking into chainwatch processing; No panics during processing (#3526)
  • Conformance: various changes (#3521)

0.5.10 / 2020-09-03

This patch includes a crucial fix to the message pool selection logic, strongly disfavouring messages that might cause a miner penalty.

Changes

  • Fix calculation of GasReward in messagepool (#3528)

0.5.9 / 2020-09-03

This patch includes a hotfix to the GasEstimateFeeCap method, capping the estimated fee to a reasonable level by default.

Changes

  • Added target height to sync wait (#3502)
  • Disable codecov annotations (#3514)
  • Cap fees to reasonable level by default (#3516)
  • Add APIs and command to inspect bandwidth usage (#3497)
  • Track expected nonce in mpool, ignore messages with large nonce gaps (#3450)

0.5.8 / 2020-09-02

This patch includes some bugfixes to the sector sealing process, and updates go-fil-markets. It also improves the performance of blocksync, adds a method to export chain state trees, and improves chainwatch.

Changes

0.5.7 / 2020-08-31

This patch release includes some bugfixes and enhancements to the sector lifecycle and message pool logic.

Changes

  • Rebuild unsealed infos on miner restart (#3401)
  • CLI to attach storage paths to workers (#3405)
  • Do not select negative performing message chains for inclusion (#3392)
  • Remove a redundant error-check (#3421)
  • Correctly move unsealed sectors in FinalizeSectors (#3424)
  • Improve worker selection logic (#3425)
  • Don't use context to close bitswap (#3430)
  • Correctly estimate gas premium when there is only one message on chain (#3428)

0.5.6 / 2020-08-29

Hotfix release that fixes a panic in the sealing scheduler (#3389).

0.5.5

This patch release introduces a large number of improvements to the sealing process. It also updates go-fil-markets to version 0.5.8, and go-libp2p-pubsub to v0.3.5.

Downstream upgrades

  • Upgrades markets to v0.5.8 (#3384)
  • Upgrades go-libp2p-pubsub to v0.3.5 (#3305)

Sector sealing

  • The following improvements were introduced in #3350.

    • Allow lotus-miner sectors remove to remove a sector in any state.
    • Create a separate state in the storage FSM dedicated to submitting the Commit message.
    • Recovery for when the Deal IDs of deals in a sector get changed in a reorg.
    • Auto-retry sending Precommit and Commit messages if they run out of gas
    • Auto-retry sector remove tasks when they fail
    • Compact worker windows, and allow their tasks to be executed in any order
  • Don't simply skip PoSt for bad sectors (#3323)

Message Pool

  • Spam Protection: Track required funds for pending messages (#3313)

Chainwatch

  • Add more power and reward metrics (#3367)
  • Fix raciness in sector deal table (#3275)
  • Parallelize miner processing (#3380)
  • Accept Lotus API and token (#3337)

0.5.4

A patch release, containing a few nice bugfixes and improvements:

  • Fix parsing of peer ID in lotus-miner actor set-peer-id (@whyrusleeping)
  • Update dependencies, fixing several bugs (@Stebalien)
  • Fix remaining linter warnings (@Stebalien)
  • Use safe string truncation (@Ingar)
  • Allow tweaking of blocksync message window size (@whyrusleeping)
  • Add some additional gas stats to metrics (@Kubuxu)
  • Fix an edge case bug in message selection, add many tests (@vyzo)

0.5.3

Yet another hotfix release. A lesson for readers, having people who have been awake for 12+ hours review your hotfix PR is not a good idea. Find someone who has enough slept recently enough to give you good code review, otherwise you'll end up quickly bumping versions again.

  • Fixed a bug in the mempool that was introduced in v0.5.2

0.5.2 / 2020-08-24

This is a hotfix release.

  • Fix message selection to not include messages that are invalid for block inclusion.
  • Improve SelectMessage handling of the case where the message pools tipset differs from our mining base.

0.5.1 / 2020-08-24

The Space Race release! This release contains the genesis car file and bootstrap peers for the space race network.

Additionally, we included two small fixes to genesis creation:

  • Randomize ticket value in genesis generation
  • Correctly set t099 (burnt funds actor) to have valid account actor state

0.5.0 / 2020-08-20

This version of Lotus will be used for the incentivized testnet Space Race competition, and can be considered mainnet-ready code. It includes some protocol changes, upgrades of core dependencies, and various bugfixes and UX/performance improvements.

Highlights

Among the highlights included in this release are:

  • Gas changes: We implemented EIP-1559 and introduced real gas values.
  • Deal-making: We now support "Committed Capacity" sectors, "fast-retrieval" deals, and the packing of multiple deals into a single sector.
  • Renamed features: We renamed some of the binaries, environment variables, and default paths associated with a Lotus node.

Gas changes

We made some significant changes to the mechanics of gas in this release.

Network fee

We implemented something similar to Ethereum's EIP-1559. The Message structure had three changes:

  • The GasPrice field has been removed
  • A new GasFeeCap field has been added, which controls the maximum cost the sender incurs for the message
  • A new GasPremium field has been added, which controls the reward a miner earns for including the message

A sender will never be charged more than GasFeeCap * GasLimit. A miner will typically earn GasPremium * GasLimit as a reward.

The Blockheader structure has one new field, called ParentBaseFee. Informally speaking,the ParentBaseFee is increased when blocks are densely packed with messages, and decreased otherwise.

The ParentBaseFee is used when calculating how much a sender burns when executing a message. Burning simply refers to sending attoFIL to a dedicated, unreachable account. A message causes ParentBaseFee * GasUsed attoFIL to be burnt.

Real gas values

This release also includes our first "real" gas costs for primitive operations. The costs were designed to account for both the time that message execution takes, as well as the space a message adds to the state tree.

Deal-making changes

There are three key changes to the deal-making process.

Committed Capacity sectors

Miners can now pledge "Committed Capacity" (CC) sectors, which are explicitly stated as containing junk data, and must not include any deals. Miners can do this to increase their storage power, and win block rewards from this pledged storage.

They can mark these sectors as "upgradable" with lotus-miner sectors mark-for-upgrade. If the miner receives and accepts one or more storage deals, the sector that includes those deals will replace the CC sector. This is intended to maximize the amount of useful storage on the Filecoin network.

Fast-retrieval deals

Clients can now include a fast-retrieval flag when proposing deals with storage miners. If set to true, the miner will include an extra copy of the deal data. This data can be quickly served in a retrieval deal, since it will not need to be unsealed.

Multiple deals per sector

Miners can now pack multiple deals into a single sector, so long as all the deals fit into the sector capacity. This should increase the packing efficiency of miners.

Renamed features

To improve the user experience, we updated several names to maintain standard prefixing, and to better reflect the meaning of the features being referenced.

In particular, the Lotus miner binary is now called lotus-miner, the default path for miner data is now ~/.lotusminer, and the environment variable that sets the path for miner data is now $LOTUS_MINER_PATH. A full list of renamed features can be found here.

Changelog

Downstream upgrades

  • Upgrades markets to v0.5.6 (#3058)
  • Upgrades specs-actors to v0.9.3 (#3151)

Core protocol

  • Introduces gas values, replacing placeholders (#2343)
  • Implements EIP-1559, introducing a network base fee, message gas fee cap, and message gas fee premium (#2874)
  • Implements Poisson Sortition for elections (#2084)

Deal-making lifecycle

Enhancements

UX

  • Provide status updates for data-transfer (#3162, #3191)
  • Miners can customise asks (#2046)
  • Miners can toggle auto-acceptance of deals (#1994)
  • Miners can maintain a blocklist of piece CIDs (#2069)

Contributors

The following contributors had 10 or more commits go into this release. We are grateful for every contribution!

Contributor Commits Lines ±
magik6k 361 +13197/-6136
Kubuxu 227 +5670/-2587
arajasek 120 +2916/-1264
whyrusleeping 112 +3979/-1089
vyzo 99 +3343/-1305
dirkmc 68 +8732/-3621
laser 45 +1489/-501
hannahhoward 43 +2654/-990
frrist 37 +6630/-4338
schomatis 28 +3016/-1368
placer14 27 +824/-350
raulk 25 +28718/-29849
mrsmkl 22 +560/-368
travisperson 18 +1354/-314
nonsense 16 +2956/-2842
ingar 13 +331/-123
daviddias 11 +311/-11
Stebalien 11 +1204/-980
RobQuistNL 10 +69/-74

0.1.0 / 2019-12-11

We are very excited to release lotus 0.1.0. This is our testnet release. To install lotus and join the testnet, please visit lotu.sh. Please file bug reports as issues.

A huge thank you to all contributors for this testnet release!