361 lines
18 KiB
Markdown
361 lines
18 KiB
Markdown
# Lotus changelog
|
|
|
|
# 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` (https://github.com/filecoin-project/lotus/pull/3645)
|
|
- Revert "only subscribe to pubsub topics once we are synced" (https://github.com/filecoin-project/lotus/pull/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:
|
|
|
|
- Tweaking of some cryptoecon parameters in specs-actors 0.9.7 (https://github.com/filecoin-project/specs-actors/releases/tag/v0.9.7)
|
|
- Rebalancing FIL distribution to make testnet FIL scarce, which prevents base fee spikes and sets better expectations for mainnet
|
|
|
|
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 (https://github.com/filecoin-project/lotus/pull/3632)
|
|
- Network upgrade: Upgrade to correct fork threshold (https://github.com/filecoin-project/lotus/pull/3628)
|
|
- Update to specs 0.9.7 and markets 0.6.0 (https://github.com/filecoin-project/lotus/pull/3627)
|
|
- Network upgrade: Perform base fee tamping (https://github.com/filecoin-project/lotus/pull/3623)
|
|
- Chain events: if cache best() is nil, return chain head (https://github.com/filecoin-project/lotus/pull/3611)
|
|
- Update to specs actors v0.9.6 (https://github.com/filecoin-project/lotus/pull/3603)
|
|
|
|
#### Messagepool
|
|
|
|
- Temporarily allow negative chains (https://github.com/filecoin-project/lotus/pull/3625)
|
|
- Improve publish/republish logic (https://github.com/filecoin-project/lotus/pull/3592)
|
|
- Fix selection bug; priority messages were not included if other chains were negative (https://github.com/filecoin-project/lotus/pull/3580)
|
|
- Add defensive check for minimum GasFeeCap for inclusion within the next 20 blocks (https://github.com/filecoin-project/lotus/pull/3579)
|
|
- Add additional info about gas premium (https://github.com/filecoin-project/lotus/pull/3578)
|
|
- Fix GasPremium capping logic (https://github.com/filecoin-project/lotus/pull/3552)
|
|
|
|
#### Payment channels
|
|
|
|
- Get available funds by address or by from/to (https://github.com/filecoin-project/lotus/pull/3547)
|
|
- Create `lotus paych status` command (https://github.com/filecoin-project/lotus/pull/3523)
|
|
- Rename CLI command from "paych get" to "paych add-funds" (https://github.com/filecoin-project/lotus/pull/3520)
|
|
|
|
#### Peer-to-peer
|
|
|
|
- Only subscribe to pubsub topics once we are synced (https://github.com/filecoin-project/lotus/pull/3602)
|
|
- Reduce mpool add failure log spam (https://github.com/filecoin-project/lotus/pull/3562)
|
|
- Republish messages even if the chains have negative performance(https://github.com/filecoin-project/lotus/pull/3557)
|
|
- Adjust gossipsub gossip factor (https://github.com/filecoin-project/lotus/pull/3556)
|
|
- Integrate pubsub Random Early Drop (https://github.com/filecoin-project/lotus/pull/3518)
|
|
|
|
#### Miscellaneous
|
|
|
|
- Fix panic in OnDealExpiredSlashed (https://github.com/filecoin-project/lotus/pull/3553)
|
|
- Robustify state manager against holes in actor method numbers (https://github.com/filecoin-project/lotus/pull/3538)
|
|
|
|
#### UX
|
|
|
|
- VM: Fix an error message (https://github.com/filecoin-project/lotus/pull/3608)
|
|
- Documentation: Batch replacement,update lotus-storage-miner to lotus-miner (https://github.com/filecoin-project/lotus/pull/3571)
|
|
- CLI: Robust actor lookup (https://github.com/filecoin-project/lotus/pull/3535)
|
|
- Add agent flag to net peers (https://github.com/filecoin-project/lotus/pull/3534)
|
|
- Add watch option to storage-deals list (https://github.com/filecoin-project/lotus/pull/3527)
|
|
|
|
#### Testing & tooling
|
|
|
|
- Decommission chain-validation (https://github.com/filecoin-project/lotus/pull/3606)
|
|
- Metrics: add expected height metric (https://github.com/filecoin-project/lotus/pull/3586)
|
|
- PCR: Use current tipset during refund (https://github.com/filecoin-project/lotus/pull/3570)
|
|
- Lotus-shed: Add math command (https://github.com/filecoin-project/lotus/pull/3568)
|
|
- PCR: Add tipset aggergation (https://github.com/filecoin-project/lotus/pull/3565)- Fix broken paych tests (https://github.com/filecoin-project/lotus/pull/3551)
|
|
- Make chain export ~1000x times faster (https://github.com/filecoin-project/lotus/pull/3533)
|
|
- Chainwatch: Stop SyncIncomingBlocks from leaking into chainwatch processing; No panics during processing (https://github.com/filecoin-project/lotus/pull/3526)
|
|
- Conformance: various changes (https://github.com/filecoin-project/lotus/pull/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 (https://github.com/filecoin-project/lotus/pull/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 (https://github.com/filecoin-project/lotus/pull/3502)
|
|
- Disable codecov annotations (https://github.com/filecoin-project/lotus/pull/3514)
|
|
- Cap fees to reasonable level by default (https://github.com/filecoin-project/lotus/pull/3516)
|
|
- Add APIs and command to inspect bandwidth usage (https://github.com/filecoin-project/lotus/pull/3497)
|
|
- Track expected nonce in mpool, ignore messages with large nonce gaps (https://github.com/filecoin-project/lotus/pull/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
|
|
|
|
- Upgrade markets to v0.5.9 (https://github.com/filecoin-project/lotus/pull/3496)
|
|
- Improve blocksync to load fewer messages: (https://github.com/filecoin-project/lotus/pull/3494)
|
|
- Fix a panic in the ffi-wrapper's `ReadPiece` (https://github.com/filecoin-project/lotus/pull/3492/files)
|
|
- Fix a deadlock in the sealing scheduler (https://github.com/filecoin-project/lotus/pull/3489)
|
|
- Add test vectors for tipset tests (https://github.com/filecoin-project/lotus/pull/3485/files)
|
|
- Improve the advance-block debug command (https://github.com/filecoin-project/lotus/pull/3476)
|
|
- Add toggle for message processing to Lotus PCR (https://github.com/filecoin-project/lotus/pull/3470)
|
|
- Allow exporting recent chain state trees (https://github.com/filecoin-project/lotus/pull/3463)
|
|
- Remove height from chain rand (https://github.com/filecoin-project/lotus/pull/3458)
|
|
- Disable GC on chain badger datastore (https://github.com/filecoin-project/lotus/pull/3457)
|
|
- Account for `GasPremium` in `GasEstimateFeeCap` (https://github.com/filecoin-project/lotus/pull/3456)
|
|
- Update go-libp2p-pubsub to `master` (https://github.com/filecoin-project/lotus/pull/3455)
|
|
- Chainwatch improvements (https://github.com/filecoin-project/lotus/pull/3442)
|
|
|
|
# 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 (https://github.com/filecoin-project/lotus/pull/3401)
|
|
- CLI to attach storage paths to workers (https://github.com/filecoin-project/lotus/pull/3405)
|
|
- Do not select negative performing message chains for inclusion (https://github.com/filecoin-project/lotus/pull/3392)
|
|
- Remove a redundant error-check (https://github.com/filecoin-project/lotus/pull/3421)
|
|
- Correctly move unsealed sectors in `FinalizeSectors` (https://github.com/filecoin-project/lotus/pull/3424)
|
|
- Improve worker selection logic (https://github.com/filecoin-project/lotus/pull/3425)
|
|
- Don't use context to close bitswap (https://github.com/filecoin-project/lotus/pull/3430)
|
|
- Correctly estimate gas premium when there is only one message on chain (https://github.com/filecoin-project/lotus/pull/3428)
|
|
|
|
# 0.5.6 / 2020-08-29
|
|
|
|
Hotfix release that fixes a panic in the sealing scheduler (https://github.com/filecoin-project/lotus/pull/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](https://github.com/filecoin-project/go-fil-markets/releases/tag/v0.5.8),
|
|
and go-libp2p-pubsub to [v0.3.5](https://github.com/libp2p/go-libp2p-pubsub/releases/tag/v0.3.5).
|
|
|
|
#### Downstream upgrades
|
|
|
|
- Upgrades markets to v0.5.8 (https://github.com/filecoin-project/lotus/pull/3384)
|
|
- Upgrades go-libp2p-pubsub to v0.3.5 (https://github.com/filecoin-project/lotus/pull/3305)
|
|
|
|
#### Sector sealing
|
|
|
|
- The following improvements were introduced in https://github.com/filecoin-project/lotus/pull/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 (https://github.com/filecoin-project/lotus/pull/3323)
|
|
|
|
#### Message Pool
|
|
|
|
- Spam Protection: Track required funds for pending messages (https://github.com/filecoin-project/lotus/pull/3313)
|
|
|
|
#### Chainwatch
|
|
|
|
- Add more power and reward metrics (https://github.com/filecoin-project/lotus/pull/3367)
|
|
- Fix raciness in sector deal table (https://github.com/filecoin-project/lotus/pull/3275)
|
|
- Parallelize miner processing (https://github.com/filecoin-project/lotus/pull/3380)
|
|
- Accept Lotus API and token (https://github.com/filecoin-project/lotus/pull/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](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md).
|
|
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 mainatin
|
|
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](https://github.com/filecoin-project/lotus/issues/2304).
|
|
|
|
## Changelog
|
|
|
|
#### Downstream upgrades
|
|
- Upgrades markets to v0.5.6 (https://github.com/filecoin-project/lotus/pull/3058)
|
|
- Upgrades specs-actors to v0.9.3 (https://github.com/filecoin-project/lotus/pull/3151)
|
|
|
|
#### Core protocol
|
|
- Introduces gas values, replacing placeholders (https://github.com/filecoin-project/lotus/pull/2343)
|
|
- Implements EIP-1559, introducing a network base fee, message gas fee cap, and message gas fee premium (https://github.com/filecoin-project/lotus/pull/2874)
|
|
- Implements Poisson Sortition for elections (https://github.com/filecoin-project/lotus/pull/2084)
|
|
|
|
#### Deal-making lifecycle
|
|
- Introduces "Committed Capacity" sectors (https://github.com/filecoin-project/lotus/pull/2220)
|
|
- Introduces "fast-retrieval" flag for deals (https://github.com/filecoin-project/lotus/pull/2323
|
|
- Supports packing multiple deals into one sector (https://github.com/filecoin-project/storage-fsm/pull/38)
|
|
|
|
#### Enhancements
|
|
|
|
- Optimized message pool selection logic (https://github.com/filecoin-project/lotus/pull/2838)
|
|
- Window-based scheduling of sealing tasks (https://github.com/filecoin-project/sector-storage/pull/67)
|
|
- Faster window PoSt (https://github.com/filecoin-project/lotus/pull/2209/files)
|
|
- Refactors the payment channel manager (https://github.com/filecoin-project/lotus/pull/2640)
|
|
- Refactors blocksync (https://github.com/filecoin-project/lotus/pull/2715/files)
|
|
|
|
#### UX
|
|
|
|
- Provide status updates for data-transfer (https://github.com/filecoin-project/lotus/pull/3162, https://github.com/filecoin-project/lotus/pull/3191)
|
|
- Miners can customise asks (https://github.com/filecoin-project/lotus/pull/2046)
|
|
- Miners can toggle auto-acceptance of deals (https://github.com/filecoin-project/lotus/pull/1994)
|
|
- Miners can maintain a blocklist of piece CIDs (https://github.com/filecoin-project/lotus/pull/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](lotu.sh). Please file bug reports as [issues](https://github.com/filecoin-project/lotus/issues).
|
|
|
|
A huge thank you to all contributors for this testnet release!
|