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
Aayush Rajasekaran
beba92aed4
Improve network versioning logic
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
whyrusleeping
8a8f0ab3ec
pass tipset through upgrade logic
2020-09-08 13:45:44 -07: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
Aayush Rajasekaran
39755a294a
Update to specs v0.9.6
2020-09-07 15:48:41 -04:00
austinabell
ba881eb4cf
Remove height from chain rand
2020-09-01 15:48:16 -04:00
Łukasz Magiera
e47e51275a
Merge pull request #3138 from filecoin-project/feat/remainder
...
place the remainder of unallocated funds in a 'remainder' account
2020-08-18 23:52:19 +02:00
Łukasz Magiera
71aa3a59d9
Merge pull request #3047 from filecoin-project/asr/burn-genesis
...
Do not include the burnt funds actor as a genesis account actor
2020-08-18 23:10:32 +02:00
Łukasz Magiera
d23cd2e507
Merge pull request #3136 from filecoin-project/asr/genesis-hardcode
...
Create a testnet version of setupGenesisActors
2020-08-18 21:21:04 +02:00
Aayush Rajasekaran
214eeccb18
Create a testnet version of setupGenesisActors
2020-08-18 13:56:47 -04:00
Aayush Rajasekaran
8942c02f28
Add a reminder comment
2020-08-18 06:01:48 -04:00
whyrusleeping
13e5b72cdb
proper genesis block history
...
Commit hash originally stamped into the ethereum blockchain:
https://etherscan.io/tx/0xe8f51c9eefb682cd866f059462577b6dd3d2685ff4b6437f6c940ff4f4aaf067
2020-08-17 21:13:43 -07:00
Aayush Rajasekaran
0359a458e4
Include more info in StateCirculatingSupply
2020-08-14 16:53:30 -04:00
Aayush Rajasekaran
5702ea236c
Do not include the burnt funds actor as a genesis account actor
2020-08-13 20:19:47 -04:00
Aayush Rajasekaran
5b280057b8
Move genesis locked funds into filVested
2020-08-12 16:16:35 -04:00
Aayush Rajasekaran
b6b5a79833
Get FilMined from the reward actor's state, not balance
2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
165bcc1e38
Extract stmgr's genesis infos into a new struct
2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
48ab706691
Subtract out genesis pledge and market funds when calculating circ supply
2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
fe2da35a45
Move GetCircSupply out of the vm, and into stmgr
2020-08-12 15:32:07 -04:00
Aayush Rajasekaran
5933e64de1
Include premined actors in vested funds calculation
2020-08-12 15:19:48 -04:00
Łukasz Magiera
e2c6cc6c6d
Merge pull request #2958 from filecoin-project/asr/sync-test
...
MessagesForTipset should filter out bad nonce messages
2020-08-12 13:05:57 +02:00
Aayush Rajasekaran
532c32a741
Add new BlockMsgsForTipset()
2020-08-10 15:55:44 -04:00
Łukasz Magiera
bc381fc053
stmgr: Allow changing gas values in WaitMsg
2020-08-10 14:55:52 +02:00
Jakub Sztandera
ab08858b45
Delete GasPrice from this world
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 23:08:42 +02:00
Jakub Sztandera
b384ac6943
Compute correct base burns, miner tip and so on
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 21:14:38 +02:00
Jakub Sztandera
722d6e8ffb
Introduce base fee
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 21:14:38 +02:00
Łukasz Magiera
4cb4e7c2c2
Merge remote-tracking branch 'origin/master' into next
2020-07-31 14:02:04 +02:00
Aayush Rajasekaran
b51e2a868b
Merge branch 'next' into feat/cid-builder
2020-07-28 21:02:30 -04:00
Aayush Rajasekaran
890f56ac38
Lock before setting up genesis msigs
2020-07-28 20:35:40 -04:00
Aayush Rajasekaran
de867d7a9a
Correct calculation of TotalCircSupply
2020-07-28 17:26:55 -04:00
Łukasz Magiera
fb59b40507
Fix some tests
2020-07-28 18:16:56 +02:00
Łukasz Magiera
473a1f91d5
Update specs-actors to 33f4d6e
2020-07-28 16:36:32 +02:00
Łukasz Magiera
09b90773d8
Merge remote-tracking branch 'origin/next' into feat/cid-builder
2020-07-28 16:06:06 +02:00
Łukasz Magiera
ca36519325
stmgr: Bigger number for cron gas limit
2020-07-28 14:32:30 +02:00
Łukasz Magiera
eac0a1bba9
stmgr: Handle state forks with cron on null blocks correctly
2020-07-28 14:31:28 +02:00
Łukasz Magiera
8889c5cfd3
stmgr: Dedupe cron invocation
2020-07-28 02:28:22 +02:00
Łukasz Magiera
5b6006f8fe
stmgr: Execute cron tick on null rounds
2020-07-28 02:25:16 +02:00
Simon Peffers
0f3105a01f
Integrate blst signature library: https://github.com/supranational/blst
2020-07-25 21:38:18 -04:00
Steven Allen
b7a4dbb07f
Support inline CIDs
...
And use the new CidBuilder from the spec actors.
This patch does not switch over to inline CIDs by default, but paves the way.
2020-07-23 23:12:32 -07:00
Steven Allen
5fc83f4d05
Refactor to use actor adt types instead of directly using HAMTs and AMTs
...
This way there's a single source of truth. Preparation for fixing
https://github.com/filecoin-project/specs-actors/issues/517 (requires changing
HAMT parameters).
2020-07-23 09:34:57 -07:00
Łukasz Magiera
d70edbcb7c
Set things on syscallShim
2020-07-22 13:35:10 -04:00
Jakub Sztandera
1b5797be9d
Merge pull request #2456 from filecoin-project/feat/increase-cron-gas
...
Increase cron gas
2020-07-17 20:11:21 +02:00
Jakub Sztandera
aafafce083
Increase cron gas
...
Make gas check overflow safe
2020-07-17 19:49:55 +02:00
Łukasz Magiera
5a3ab5c5f0
More actor updates
2020-07-16 14:48:20 +02:00
Łukasz Magiera
faebc4c948
WIP Integrating specs-actors with refactored miner state
2020-07-14 13:45:45 +02:00
Aayush Rajasekaran
8e7ac226b0
Include WinCount when awarding block rewards
2020-06-26 14:27:49 -04:00
Jakub Sztandera
4895c895aa
Change WinCount to int64, wire it to BlockMessage
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-24 19:51:22 +02:00
Łukasz Magiera
907364ce67
Update deps, fix more tests
2020-06-15 18:30:49 +02:00
Jakub Sztandera
c3f23ddce8
Refactor ExecutionResult to ExecutionTrace
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 15:53:47 +02:00
Jakub Sztandera
7bee5b3abc
Merge remote-tracking branch 'origin/master' into next
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-05 00:33:43 +02:00
Łukasz Magiera
f9f0d86ddf
Merge pull request #1913 from acruikshank/feat/1853-confirmations-in-StateWaitMsg2
...
Add confidence and timeout to message wait
2020-06-04 23:23:15 +02:00
acruikshank
ce33074626
go fmt
2020-06-03 22:30:09 -04:00
acruikshank
04f0130530
remove timeout
2020-06-03 17:42:06 -04:00
acruikshank
5574e4f11b
add confidence and timeout to message wait
2020-06-03 15:38:37 -04:00
Aayush Rajasekaran
4b01b666f6
Bugfix: searchback for a message should stop if we reach sender nonce of 0
2020-06-03 14:08:05 -04:00
Jakub Sztandera
96ade5f2dd
Cleanup more lint warnings
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 18:38:41 +02:00
Jakub Sztandera
5605aae269
Fix even more lint warnings
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 16:29:39 +02:00
Jakub Sztandera
d6615b6286
Cleanup many lint warnings
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-05-27 22:53:20 +02:00
Frrist
0f0589bcf5
Update validation driver to match latest in chain-validation ( #1532 )
...
* update driver to match new chain-validation interfaces
* update chain-validation
* update filecoin-ffi
* gofmt
* update chain-validation again
2020-04-24 15:08:16 -07:00
Łukasz Magiera
93b2b6d65d
Merge branch 'testnet/3' into feat/windowed-post
2020-04-17 18:38:20 +02:00
Aayush Rajasekaran
14ad808a00
Remove unused fields from VM
2020-04-16 15:34:01 -04:00
Łukasz Magiera
bb3789b130
Fix ADT uses
2020-04-13 23:06:11 +02:00
Jakub Sztandera
ce4978d8c3
Reintroduce correct ticket randomness alongside ElectionProof
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-04-08 21:06:41 +02:00
Jeromy
8e0ca306d2
more wiring up of drandomness
2020-04-08 08:11:42 -07:00
Jeromy
beaa3dffab
add a command to lotus-bench to benchmark importing and validating a chain
2020-04-02 16:18:38 -07:00
whyrusleeping
aa23266c6f
use gas used in block rewards
2020-04-01 21:16:16 -07:00
Jeromy
088d693eea
code review changes
2020-03-25 12:13:09 -07:00
Aayush Rajasekaran
ebcefa80e3
provide msg length to vm::ApplyMessage
2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
c951e0cc83
do not reprocess duplicate messages in a block
2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
3896631a1c
Remove pre-execution validity checks on messages
2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
490f85e690
Send implicit messages for block rewards, cron ticks, state calls, and genesis setup
2020-03-25 08:25:03 -04:00
Whyrusleeping
60ea9e6ec8
Merge pull request #1426 from filecoin-project/asr/statewait
...
Re: #1412 : Add a non-blocking version of StateWaitMsg
2020-03-24 16:17:47 -07:00
Aayush Rajasekaran
d350a9d415
Re: #1412 : Add a non-blocking version of StateWaitMsg
...
- This commit adds a new method called StateSearchMsg
- We can probably overhaul StateWaitMsg onto this new method at a later point in time
2020-03-24 06:43:15 -04:00
Aayush Rajasekaran
753e8ff7f5
Award gas fees to miners correctly
2020-03-24 03:35:58 -04:00
Lucas Molas
d21cb96ddb
doc: add comments related to actor code review
2020-03-18 16:43:58 -07:00
whyrusleeping
ddf1beac6c
change gas limit to be a normal int64
2020-03-18 13:45:37 -07:00
whyrusleeping
16d087cce4
get fallback post running successfully!
2020-03-10 23:30:48 -07:00
whyrusleeping
f1ff55f8b6
pass ticket count into reward application message
2020-03-09 00:45:40 -07:00
whyrusleeping
4260cc38c9
implement compute state trace output
2020-03-08 20:07:25 -07:00
whyrusleeping
2cd06e3ea0
update to latest specs-actors
2020-03-05 13:02:33 -08:00
whyrusleeping
5076b2b950
fix reward actor and block reward application
2020-03-04 13:21:24 -08:00
whyrusleeping
0da2f81252
get most of the chain validation tests passing
2020-03-03 16:06:41 -08:00
whyrusleeping
0f6c365411
Do proper shimming for chain validation library
2020-03-03 16:06:41 -08:00
Łukasz Magiera
ae634ef7df
actors: Remove addrass aliases
2020-02-25 21:54:58 +01:00
Łukasz Magiera
cd10a3126b
actors: drop a bunch of type aliases
2020-02-25 21:35:15 +01:00
Łukasz Magiera
a82d156ccb
Deal flow fixes
2020-02-23 16:50:36 +01:00
whyrusleeping
00d7bd1a77
chain/gen tests now pass!
2020-02-20 00:37:10 -08:00
Łukasz Magiera
c69c9e62c2
stmgr: Correctly read sectorset
2020-02-19 21:34:21 +01:00
whyrusleeping
6d0eec6395
working towards a working genesis generator
2020-02-17 23:15:30 -08:00
Łukasz Magiera
c544c2b5c5
Set hamt bitwidth
2020-02-14 15:14:39 +01:00
Łukasz Magiera
48c5494cf9
use specs-actors birfields
2020-02-14 01:24:24 +01:00
Łukasz Magiera
0aaf7b25a9
Propagate spec actor types more
2020-02-12 08:44:20 +01:00
Łukasz Magiera
4d5c4d89ce
stmgr: Update stmgr utils
2020-02-11 03:33:27 +01:00
Łukasz Magiera
91ca4a841a
specs-actors: Import miner/power/cron/paych code
2020-02-11 02:43:26 +01:00
Łukasz Magiera
13435aebdc
Spec Actors integration
2020-02-08 03:18:32 +01:00
whyrusleeping
faf05cafcf
squash forks and use correct amt library everywhere
2020-02-04 18:26:42 -08:00
whyrusleeping
028a113737
Make it all build
2020-02-04 14:19:05 -08:00
whyrusleeping
01b6ddbbd3
add a test to ensure there are no off-by-one errors in fork activation logic
2020-01-31 15:52:39 -08:00
whyrusleeping
955b755055
wire up importing
2020-01-20 17:53:55 -08:00
Łukasz Magiera
a2bcc1fec2
Mostly functional mock sectorbuilder
2020-01-14 03:05:35 +01:00
Jakub Sztandera
1ed62628a7
Update go-log to v2
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-01-08 20:22:31 +01:00
hannahhoward
8418464d91
refactor(address): use extracted address library
...
Switch to using extracted address library
2020-01-07 14:53:27 +01:00
Łukasz Magiera
6ce4cf12f7
Care about nullblocks in handleStateForks
2019-12-19 21:01:05 +01:00
Łukasz Magiera
3f54cbabe0
FORK: No power EPS Fix
2019-12-19 19:47:25 +01:00
Łukasz Magiera
44f3a501ab
Merge pull request #783 from filecoin-project/fix/bad-epost-mining
...
Fix/bad epost mining
2019-12-09 18:27:24 +01:00
whyrusleeping
e8c43d00cc
dont waste work when calling ComputeTipSetState in parallel
2019-12-08 18:07:44 +01:00
whyrusleeping
8181b283c0
don't accept blocks from slashed miners
2019-12-07 18:59:34 +01:00
whyrusleeping
e6a08784f8
print more errors if epost fails during tipset state evaluation
2019-12-07 17:24:42 +01:00
Łukasz Magiera
38eedd05e8
stmgr: Mute duplicate msg in tipset spam
2019-12-05 19:59:51 +01:00
Łukasz Magiera
5810922441
This helps for some reason
2019-12-03 17:39:47 +01:00
Whyrusleeping
dd6e75f49d
Merge pull request #666 from filecoin-project/feat/election-post
...
Election post restructuring
2019-12-02 15:32:12 -08:00
Łukasz Magiera
849b9741d9
Merge pull request #673 from filecoin-project/feat/cron
...
actors: Implement cron actor
2019-12-02 12:11:04 +01:00
Łukasz Magiera
adf71f502c
don't print scary errors when miner has no sectors
2019-11-29 20:14:10 +01:00
whyrusleeping
8fae155cf6
Add timings for proof verification
2019-11-27 19:43:52 -06:00
Łukasz Magiera
23e0008b81
Merge remote-tracking branch 'origin/master' into feat/election-post
2019-11-27 13:31:44 +01:00
laser
3623925f66
replace go-bls-sigs and go-sectorbuilder with filecoin-ffi
...
- remove old submodules and add new submodule
- update build tooling to consume new unified static library
- update consumers of old libs to use new package
2019-11-26 18:16:37 -08:00
Łukasz Magiera
67b22ac22e
stmgr: Fix WaitMessage with more than one msg from single origin
2019-11-25 14:59:12 +01:00
whyrusleeping
a0588d513d
Add lotus-gen, rewire genesis mining
2019-11-24 22:45:13 -06:00
Łukasz Magiera
a755ca5dae
stmgr: check for duplicate nonces when looking back for msg
2019-11-24 20:16:18 +01:00
Łukasz Magiera
96023d415e
actors: Implement cron actor
2019-11-22 23:51:44 +01:00
Łukasz Magiera
ddf2e05dd0
post: More correct 'wait' logic
2019-11-20 18:00:05 +01:00
whyrusleeping
f8eabd3db4
Refactor mining logic to match specs ticket chain
2019-11-20 10:52:36 -06:00
Łukasz Magiera
004f647504
Merge pull request #597 from filecoin-project/feat/simple-power-slash
...
Simple power slashing
2019-11-15 01:14:20 +01:00
Jakub Sztandera
c54b28a419
Check if miner is included twice in tipset
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-11-15 01:01:00 +01:00
郭光华
dd439e0af8
Keep the context consistent
2019-11-14 14:34:54 +08:00
Łukasz Magiera
2dd155e9e9
Make basic slashing work
2019-11-14 01:02:24 +01:00
Łukasz Magiera
7363ec714a
chain: make tests pass after slashing changes
2019-11-14 00:35:58 +01:00
Łukasz Magiera
0241e31129
chain: wire CheckProofSubmissions to computeTipSetState
2019-11-14 00:14:11 +01:00
whyrusleeping
86624c8ed4
fix tests and add some more trace attributes
2019-11-12 22:44:29 -08:00
Łukasz Magiera
eeca3d86df
Merge pull request #415 from filecoin-project/feat/deals-on-chain
...
On-Chain deals
2019-10-25 17:03:25 +02:00
whyrusleeping
acb7d57794
fix handling of actor not found for balance checks
2019-10-24 15:55:00 +08:00
Łukasz Magiera
fabd074165
on chain deals: Deals make it to the chain
2019-10-23 19:39:14 +02:00
Jakub Sztandera
7532f92c98
Cleanup GetBalance call and warn if actor does not exist
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-22 21:58:51 +02:00
Jakub Sztandera
1bf713cb0a
Cleanup imports after rename
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-18 13:47:41 +09:00
Łukasz Magiera
fb80d75b07
Almost building weight function
2019-10-15 14:31:34 +02:00
Jakub Sztandera
68db93b62e
More if not needed
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-13 03:08:05 +02:00
whyrusleeping
45737f8a51
add more tracing spans
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-13 03:07:55 +02:00
Łukasz Magiera
704f06761a
Merge pull request #347 from filecoin-project/feat/list-miners-cmd
...
implement commands to list actors and miners
2019-10-12 09:10:19 +02:00
whyrusleeping
edcf47ff31
implement commands to list actors and miners
2019-10-12 15:45:48 +09:00
whyrusleeping
a56e786e36
some cleanup of vm transfer logic to make juan happier
2019-10-11 18:13:04 +09:00
whyrusleeping
3f342d7ae2
add some more tracing to chain sync
2019-10-10 20:13:26 +09:00
whyrusleeping
8e51ab8375
don't bother looking in genesis block for messages
2019-10-09 17:56:47 +09:00
whyrusleeping
14c4a8bee6
implement looking in the past for messages
2019-10-09 09:33:18 +02:00
whyrusleeping
249074761c
verify message signatures during block validation
2019-10-09 11:58:49 +09:00
whyrusleeping
f15557649f
leave better rationale for the special case in TipSetState
2019-10-02 14:27:41 -06:00
whyrusleeping
c0e6e611be
clean up usage of stmgr.TipSetState
2019-10-02 14:03:27 -06:00
whyrusleeping
65def6cc58
handle getting state for genesis block
2019-10-02 12:00:08 -06:00
whyrusleeping
1ec5c61015
fix block reward application
2019-10-02 09:50:10 -06:00