Łukasz Magiera
38f87981c1
Fix some build errors
2020-09-14 13:14:06 +02:00
Steven Allen
d3594835c4
[WIP] Network upgrade support
...
This patch starts adding support for network upgrades.
* It adds an actors abstraction layer for loading abstract (cross-version) actors.
* It starts switching over to a shared deadline type.
* It adds an abstraction for ADTs (hamt/amt).
* It removes the callback-based API in the StateManager (difficult to abstract
across actor versions).
* It _does not_ actually add support for actors v2. We can do that in a followup
patch but that should be relatively easy.
This patch is heavily WIP and does not compile. Feel free to push changes
directly to this branch.
Notes:
* State tree access now needs a network version, because the HAMT type will change.
* I haven't figured out a nice way to abstract over changes to the _message_
types. However, many of them will be type aliased to actors v0 in actors v2 so
we can likely continue using the v0 versions (or use the v2 versions
everywhere). I've been renaming imports to `v0*` to make it clear that we're
importing types from a _specific_ actors version.
TODO:
* Consider merging incremental improvements? We'd have to get this compiling
again first but we could merge in the new abstractions, and slowly switch over.
* Finish migrating to the new abstractions.
* Remove all actor state types from the public API. See `miner.State.Info()` for
the planned approach here.
* Fix the tests. This is likely going to be a massive pain.
2020-09-11 20:16:29 -07:00
vyzo
b78fe0b898
fix deadlock
2020-09-11 21:40:25 +03:00
vyzo
bf1036c78f
rename priority variable to protected
2020-09-11 21:12:11 +03:00
vyzo
cf9820137c
don't prune locally published messages
2020-09-11 20:32:52 +03:00
Łukasz Magiera
4410da98be
Merge pull request #3766 from filecoin-project/fix/mpool-prune
...
refactor getBaseFeeLowerBound, use it to prune less aggressively
2020-09-11 11:40:26 +02:00
vyzo
3dfb3e641b
refactor getBaseFeeLowerBound, use it to prune less aggressively
2020-09-11 12:15:03 +03:00
Łukasz Magiera
eaf9ebc2ca
Merge pull request #3752 from filecoin-project/fix/mpool-replace-auto
...
Fix mpool replace --auto
2020-09-11 11:12:35 +02:00
whyrusleeping
0e3dd3cb3b
Add faster and slimmer option to chain export via lotus-shed
2020-09-10 17:28:25 -07:00
Jakub Sztandera
2865a0367b
Fix mpool replace --auto
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-11 00:59:57 +02:00
Jakub Sztandera
6813ab4e65
Add additional metrics
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Jakub Sztandera
fd714cbceb
Remove PackingEfficiency consideration from base fee in an upgrade
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
whyrusleeping
db6bd890d9
condition randomness changes on fork height
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Steven Allen
7a46c5ff31
[WIP] Fix ticket randomness
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
98a9042c07
Use newest network version in genesiss setup stuff
2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
beba92aed4
Improve network versioning logic
2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
774e068436
Update to specs-actors v0.9.8
2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
86ba21029d
Update to go state types 001afaca718c
2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
316ac61875
Update to go state types 3ca0d2890090
2020-09-10 17:41:55 -04:00
Jakub Sztandera
bb0a7f91cc
Fix drand non-test
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Jakub Sztandera
73e54352cd
Fix off by one
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Jakub Sztandera
64fa6fd9e5
Draw the rest of the owl
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
Jakub Sztandera
2d3f92aeed
Introduce beacon Schedule
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-10 17:41:55 -04:00
vyzo
72c7d4c886
relax mpool add strictness checks for local pushes
...
So that a node can have more than 1k pending messages for its own local addresses.
2020-09-10 09:55:50 +03:00
Aayush Rajasekaran
e1a0cf6ca5
Add a checkpoint test
2020-09-09 19:21:48 -04:00
Aayush Rajasekaran
183df4c135
Fix IsAncestorOf
2020-09-09 19:09:55 -04:00
vyzo
d369f542c5
warn when optimal selection fails to pack a block and we fall back to random selection
2020-09-09 23:17:09 +03:00
Jakub Sztandera
ef18f93609
Merge pull request #3698 from filecoin-project/fix/mpool-packing-failure
...
fix mpool optimal selection packing failure
2020-09-09 21:38:26 +02:00
Aayush Rajasekaran
f0554676dd
Explicitly check tipsetkeys when considering checkpoint
2020-09-09 14:34:05 -04:00
Aayush Rajasekaran
5c852e26c2
Add a SyncUnmarkBad API
2020-09-09 14:34:05 -04:00
Aayush Rajasekaran
5e3c178b9e
Add a sync test for checkpointed tipsets
2020-09-09 14:34:04 -04:00
Aayush Rajasekaran
35aa78dad9
Allow marking a certain tipset as checkpointed
2020-09-09 14:34:00 -04:00
vyzo
cf515bc5ca
add selection test with real world messages dumped from a live node mpool
2020-09-09 20:46:26 +03:00
vyzo
97cbfa11b7
fix nasty bug in optimal selection
...
the sort has to account for negative gasPerf and be stable; go figure.
2020-09-09 20:45:24 +03:00
Łukasz Magiera
1d78ffc04d
Merge pull request #3676 from filecoin-project/feat/mpool-replace-auto
...
add an auto flag to mpool replace
2020-09-09 19:31:43 +02:00
whyrusleeping
e9b85f5acb
ensure replaced message can properly RBF
2020-09-09 10:23:41 -07:00
Łukasz Magiera
cb3b0ab2bb
Merge remote-tracking branch 'origin/master' into blocksync-refactor
2020-09-09 19:19:05 +02:00
vyzo
194b6eb9d8
fix issue with gasLimit check for trimming (> instead of >=)
2020-09-09 12:58:51 +03:00
vyzo
0b09082450
adjust optimal selection to always try to fill blocks
2020-09-09 12:37:03 +03:00
Aayush Rajasekaran
06b814b627
Merge pull request #3673 from filecoin-project/fix/long-syncs-over-upgrade
...
pass tipset through upgrade logic
2020-09-08 22:28:42 -04:00
whyrusleeping
8a8f0ab3ec
pass tipset through upgrade logic
2020-09-08 13:45:44 -07:00
Łukasz Magiera
1ef0359731
Merge pull request #3668 from filecoin-project/feat/sync-fetching-messages-state
...
Add StageFetchingMessages to sync status
2020-09-08 21:15:05 +02:00
Jakub Sztandera
44f4372ca3
Add StageFetchingMessages to sync status
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 20:42:20 +02:00
vyzo
26ff596983
fix very minor bug in repub baseFeeLowerBound
...
messages will not be accepted if the GasFeeCap is less than minimumBaseFee, but it doesn't hurt
to be correct.
2020-09-08 19:02:05 +03:00
Raúl Kripalani
b33db9c1ab
Merge branch 'master' into blocksync-refactor
2020-09-08 14:22:43 +01:00
Łukasz Magiera
867469e9b3
Merge pull request #3648 from filecoin-project/fix/dont-use-latency
...
Don't use latency as initital estimate for blocksync
2020-09-08 14:56:23 +02:00
Jakub Sztandera
b66058e417
Add 0 guard
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 12:19:37 +02:00
Jakub Sztandera
ba9678bd61
Use for to iterate over channel
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 12:11:30 +02:00
Jakub Sztandera
74e577610a
Forward peers from hello to blocksync
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 10:18:51 +02:00
vyzo
37ec1a978e
nicer check using Time objects
2020-09-08 10:47:41 +03:00
vyzo
27fa9969f3
fix isChainNearSync check in block validator
2020-09-08 10:26:27 +03:00
Jakub Sztandera
93176c91f4
Track time in relation to request size
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 09:06:31 +02:00
Jakub Sztandera
043e62ab63
Don't use latency as initital estimate for blocksync
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-08 08:59:05 +02:00
Aayush Rajasekaran
c77f5f6252
Revert "only subscribe to pubsub topics once we are synced"
2020-09-08 00:32:26 -04:00
whyrusleeping
d1cf445327
use defined constant for fork height
2020-09-07 16:18:22 -07:00
whyrusleeping
26ec0716b9
fix lint errors
2020-09-07 16:12:44 -07:00
whyrusleeping
97af576f6a
Implement faucet funds reallocation logic
...
use all committed sectors instead of power
give all miners who had at least a sector on friday a base amount
include genesis miner in redistribution
drop back to 1,000,000
2020-09-07 16:06:13 -07:00
Aayush Rajasekaran
0e986df7e5
Merge pull request #3627 from filecoin-project/asr/specs-update-0.9.7
...
Update to specs 0.9.7 and markets 0.6.0
2020-09-07 18:00:56 -04:00
Aayush Rajasekaran
45011c0fad
Use latest version if no upgrade height is specified
2020-09-07 17:43:14 -04:00
Aayush Rajasekaran
6eea5dd109
Update to specs 0.9.7 and markets 0.6.0
2020-09-07 17:11:32 -04:00
Jakub Sztandera
46ee2eeded
Upgrade to correct fork treshold
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 23:07:33 +02:00
Jakub Sztandera
704db225d1
Update the fork point
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:45:06 +02:00
Jakub Sztandera
ce0e9594df
Update to go-state-types
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:44:12 +02:00
Jakub Sztandera
835b7eb6f7
Make allowNegativeChains a function
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:44:12 +02:00
vyzo
172ff846fd
decouple negative chain selection from base fee lower bound validation
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:44:12 +02:00
vyzo
97fddc45d9
temporarily allow negative perfoming chains
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:44:09 +02:00
whyrusleeping
5654322f54
introduce logic to perform base fee tamping around the upgrade time
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-07 22:31:36 +02:00
Aayush Rajasekaran
d678fe4bfa
Fix tests
2020-09-07 15:48:42 -04:00
Aayush Rajasekaran
39755a294a
Update to specs v0.9.6
2020-09-07 15:48:41 -04:00
anorth
a8dcea1422
Remove use of exitcode.SysErrInvalidParameters
2020-09-07 15:48:41 -04:00
vyzo
2233751668
use the baseFeeLowerBound for computing repub message chains
2020-09-07 21:53:30 +03:00
Raúl Kripalani
453e826a0f
rename p2p protocol to /fil/chain/xchg/0.0.1 (backwards-compatible); rename more.
2020-09-07 19:45:34 +01:00
Raúl Kripalani
55b1456d45
blocksync: introduce interfaces; rename to chainexchange.
2020-09-07 19:31:43 +01:00
vyzo
41222792ed
add docstring for verifyMsgBeforeAdd
2020-09-07 20:26:51 +03:00
vyzo
5659faf7f0
don't immediately publish messages that cannot be included in the next 20 blocks
2020-09-07 20:20:49 +03:00
vyzo
2e75d9c80a
be explicit about republish interval, check against timecache duration
2020-09-07 20:20:49 +03:00
vyzo
0fcf8838cc
improve republish logic to only republish messages that can be included in the next 20 blocks
2020-09-07 20:20:49 +03:00
Łukasz Magiera
758aae8556
Merge pull request #3586 from filecoin-project/feat/expected-height-metric
...
metrics: add expected height metric
2020-09-07 19:09:06 +02:00
Łukasz Magiera
ffbbd968c2
Merge pull request #3602 from filecoin-project/feat/delayed-pubsub-join
...
only subscribe to pubsub topics once we are synced
2020-09-07 19:08:21 +02:00
vyzo
e3aaedbc33
fix tests
2020-09-07 19:46:58 +03:00
Łukasz Magiera
f6f5405a2c
Fix lint
2020-09-07 18:21:45 +02:00
Łukasz Magiera
551ff6a6fb
Merge pull request #3608 from filecoin-project/fix/second-argument-error-message
...
fix: second argument error message
2020-09-07 18:06:22 +02:00
Łukasz Magiera
d3e5092b43
Merge pull request #3611 from filecoin-project/fix/tscache-nil-best
...
chain events: if cache best() is nil, return chain head
2020-09-07 18:05:34 +02:00
vyzo
d9faff19a5
fix tests
2020-09-07 15:55:53 +03:00
vyzo
4f0ab4f226
remove notifee after subscribing
2020-09-07 15:55:53 +03:00
Dirk McCormick
76a1b3286b
fix: if cache best is nil, return chain head
2020-09-07 14:43:06 +02:00
Alan Shaw
9d9d2a2a98
fix: second argument error message
...
Second argument should be a pointer, not runtime.
2020-09-07 12:29:40 +01:00
Raúl Kripalani
798061506e
decommission chain validation.
2020-09-07 11:34:36 +01:00
Travis Person
f7b52d16f5
metrics: add expected height metric
2020-09-07 02:57:12 +00:00
vyzo
e24a29b146
fix tests that touch the mpool; mock block must have a ParentBaseFee
2020-09-06 11:55:43 +03:00
vyzo
ffb2640736
use faster lookup for base fee
2020-09-06 11:55:43 +03:00
vyzo
f9492691a6
don't check baseFee lower bound for local messages
2020-09-06 11:55:43 +03:00
vyzo
1c0e6d76f0
add defensive check for minimum GasFeeCap for inclusion within the next 20 blocks
2020-09-06 11:55:43 +03:00
Łukasz Magiera
6bdd433570
Merge pull request #3538 from filecoin-project/steb/safe-exports
...
Robustify state manager against holes in actor method numbers
2020-09-05 21:58:03 +02:00
Łukasz Magiera
f58cbc2594
Merge pull request #3557 from filecoin-project/fix/mpool-repub-negative
...
republish messages even if the chains have negative performance
2020-09-05 21:48:39 +02:00
Łukasz Magiera
1e190e462a
Merge pull request #3562 from filecoin-project/fix/mpool-log-spam
...
reduce mpool add failure log spam
2020-09-05 21:47:29 +02:00
vyzo
5037282b98
add test for priority selection with negative chains
2020-09-05 22:15:18 +03:00
vyzo
0b3685e529
fix selection bug; priority messages were not included if other's chains were negative
2020-09-05 21:30:02 +03:00
vyzo
275f071b12
reduce mpool add failure log spam
2020-09-05 00:28:13 +03:00
vyzo
ad8d550d73
remove unused ts argument from Trim, replace it with allowNegative specifier
2020-09-04 22:32:30 +03:00
Steven Allen
fceeaf42ca
Robustify state manager against holes in actor method numbers
...
Also, don't simply assume that the field order matches the method numbers in
`builtin.Method*` structs.
2020-09-04 12:26:55 -07:00
Steven Allen
30fdff17b5
Skip nil exports
...
The actors may skip previously used but no longer defined method numbers.
2020-09-04 12:26:55 -07:00
vyzo
6d53862142
republish messages even if the chains have negative performance
2020-09-04 22:16:10 +03:00
Raúl Kripalani
1ec534d607
Merge branch 'master' into inmem-journal
2020-09-04 10:55:40 +01:00
Raúl Kripalani
905168e72e
fix lint errors.
2020-09-04 10:54:56 +01:00
Łukasz Magiera
01449e486c
Merge pull request #3528 from filecoin-project/fix/sele-gas-reward
...
Fix calculation of GasReward in messagepool
2020-09-03 20:41:28 +02:00
Jakub Sztandera
8111b227c4
Appease the linter
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-03 20:19:01 +02:00
Jakub Sztandera
8bb471bccd
Add getGasPerf test
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-03 20:19:01 +02:00
Jakub Sztandera
5074b526d0
Fix calculation of GasReward in messagepool
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-09-03 19:36:03 +02:00
Raúl Kripalani
97ff90f8fa
fix imports.
2020-09-03 15:51:26 +01:00
vyzo
d20b6adfd2
refuse to add duplicates in the mpool
2020-09-03 15:28:44 +03:00
vyzo
a4c650316a
fix test
2020-09-03 15:28:44 +03:00
vyzo
28f57667f0
cap MaxNonceGap to 4, add delay between batch messages during republish
2020-09-03 15:28:44 +03:00
vyzo
f53d2e3a46
cap MaxNonceGap to 16
2020-09-03 15:28:44 +03:00
vyzo
7b76aa2078
warn when adding a nonce-gapped message to the mpool
2020-09-03 15:28:44 +03:00
vyzo
d76a3b87c5
ignore messages with large nonce gaps
2020-09-03 15:28:44 +03:00
vyzo
da6d384300
fix tests
2020-09-03 15:28:44 +03:00
vyzo
4c489d18a2
track expected nonce in mpool, refuse messages with large gaps
2020-09-03 15:28:44 +03:00
Lucas Molas
ca8f5861fe
Update chain/blocksync/server.go
...
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
2020-09-02 17:07:39 -03:00
Raúl Kripalani
3206f92063
Merge branch 'master' into inmem-journal
2020-09-02 19:50:52 +01:00
whyrusleeping
9a5542100a
load fewer messages from disk when serving blocksync requests
2020-09-02 11:43:05 -07:00
whyrusleeping
2b16e69e90
allow snapshot importing
2020-09-02 17:15:10 +02:00
whyrusleeping
09ebd1a557
allow exporting a number of recent chain state trees
2020-09-02 17:15:10 +02:00
austinabell
ba881eb4cf
Remove height from chain rand
2020-09-01 15:48:16 -04:00
Aayush Rajasekaran
93814cc85a
Merge pull request #3392 from filecoin-project/fix/mpool-priority-selection
...
Tweak priority selection to not select negative perfoming chains
2020-08-31 19:22:12 -04:00
刘林欣
0926f95979
remove the unnecessary err check
2020-08-31 15:11:45 +08:00
vyzo
648130eec5
don't include negative performing chains in priority message selection
2020-08-29 15:55:19 +03:00
Łukasz Magiera
953effcc43
Merge pull request #3350 from filecoin-project/fix/some-fsm-issues
...
Fix some fsm issues
2020-08-29 02:16:59 +02:00
Łukasz Magiera
a62e44c4e5
Fix lint
2020-08-29 02:13:38 +02:00
Łukasz Magiera
84a632787c
Merge pull request #3313 from filecoin-project/feat/mpool-balance-tracking
...
Message Pool Rudimentary Spam Protection Measures
2020-08-28 22:35:30 +02:00
vyzo
806f7dd15f
windowSize should not exceed blocksync.MaxRequestLength
2020-08-28 23:18:06 +03:00
vyzo
63a60cdd75
be more conservative in increasing the window size, check that we actually had more messages
2020-08-28 23:09:48 +03:00
vyzo
3935fd77ac
remember syncer windowSize
2020-08-28 22:52:40 +03:00
vyzo
4e7fd5b6d7
sync: increase window size when successful fetching messages
2020-08-28 22:03:06 +03:00
vyzo
1f660c9e04
sync: half window size and retry when fetching messages fails
2020-08-28 18:45:20 +03:00
Łukasz Magiera
20ffce5c0d
Merge remote-tracking branch 'origin/master' into fix/some-fsm-issues
2020-08-28 16:47:25 +02:00
lanzafame
64768f093d
rename local recordFailure func
2020-08-28 17:15:11 +10:00
lanzafame
a24db6c584
refactor block validate recordFailure func
2020-08-28 17:11:59 +10:00
lanzafame
050a0ec5e4
further reduce code duplication
2020-08-28 17:01:45 +10:00
lanzafame
0254e4b365
reduce code duplication
2020-08-28 16:53:59 +10:00
lanzafame
094baf8aa9
distinguish local message validation failures from remote
2020-08-28 16:11:24 +10:00
Łukasz Magiera
86c936759b
Merge pull request #3357 from filecoin-project/fix/block-validator-power
...
ignore, don't reject block if we can't determine power
2020-08-28 00:24:53 +02:00
austinabell
39ef3a701b
Remove unsigned message pointer from Runtime
2020-08-27 17:34:45 -04:00
vyzo
708a8b6543
flag to allow add to skip limit check
...
essential for correctness in the revert case
2020-08-28 00:04:21 +03:00
Łukasz Magiera
6c7874c883
Merge remote-tracking branch 'origin/master' into fix/some-fsm-issues
2020-08-27 21:37:08 +02:00
vyzo
6c3d8ec1de
ignore, don't reject block if we can't determine power
2020-08-27 16:53:53 +03:00
Łukasz Magiera
df635579c4
storagefsm: Handle sectors with expired deals better
2020-08-27 13:51:38 +02:00
whyrusleeping
a33784c434
print block 'age' when validating blocks during sync
2020-08-26 14:48:53 -07:00
vyzo
038e83b647
log error if we trip over too many pending messages for actor
2020-08-26 22:55:39 +03:00
vyzo
82ef0529d8
named error for too many pending messages
2020-08-26 22:48:03 +03:00