Commit Graph

619 Commits

Author SHA1 Message Date
whyrusleeping
38e256cece add some tracing to the vm's blockstore copy 2020-09-23 20:19:20 -07:00
Aayush Rajasekaran
a876a0ba44 Use actor state addresses 2020-09-23 02:32:40 -04:00
Steven Allen
2967c4ec10 use abstract actor type methods 2020-09-22 12:02:29 -07:00
Steven Allen
1bf3b4989d rename imports to match actors code
`sed -i 's/\bv0\(\w\)\(\w*\)/\L\1\E\20/g' **/*.go`
2020-09-18 14:59:27 -07:00
Steven Allen
4a7055c328 fix state loading in vm 2020-09-18 14:46:55 -07:00
Steven Allen
24df873498 rename imports 2020-09-18 14:21:05 -07:00
Steven Allen
8747c6083e abstract over account actor 2020-09-18 14:20:53 -07:00
Łukasz Magiera
70faa36b7f Merge remote-tracking branch 'origin/master' into refactor/net-upgrade 2020-09-18 19:29:06 +02:00
Aayush Rajasekaran
053cfc1cc7 Migrate verifreg actor 2020-09-17 03:55:23 -04:00
Aayush Rajasekaran
e2295c372a Migrate multisig actor 2020-09-17 02:57:45 -04:00
Aayush Rajasekaran
b60614982e Migrate reward actor 2020-09-17 02:42:39 -04:00
Aayush Rajasekaran
b5ba7a0fad Miner migration 2020-09-17 02:21:16 -04:00
Raúl Kripalani
362fc180ec fix a regression caused by #3800. 2020-09-16 10:54:26 +01:00
Aayush Rajasekaran
b4ee519282 Partial progress towards switching to miner and power interfaces 2020-09-16 01:37:49 -04:00
Łukasz Magiera
d4a7732d0a
Merge pull request #3800 from filecoin-project/asr/gascost
Add an API to get detailed gas costs for a message
2020-09-15 19:13:20 +02:00
Steven Allen
cc4d5306eb Progress 2020-09-14 15:43:12 -07:00
Steven Allen
02dcb5e182 Merge branch 'master' into refactor/net-upgrade 2020-09-14 14:53:57 -07:00
Steven Allen
32eeb96ce7 Update to specs-actors 0.9.9
This patch changes the runtime interfaces, to make it possible to abstract over them.
2020-09-14 12:47:39 -07:00
Aayush Rajasekaran
d1850ea27d Add an API to get detailed gas costs for a message 2020-09-14 14:40:13 -04:00
Łukasz Magiera
06ec571c20 Merge remote-tracking branch 'origin/master' into refactor/net-upgrade 2020-09-14 15:09:52 +02:00
Łukasz Magiera
683a58195e More terraforming in chain/ 2020-09-14 14:46:38 +02:00
Łukasz Magiera
68097132fe Fix vm build 2020-09-14 13:45:20 +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
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
Aayush Rajasekaran
6eea5dd109 Update to specs 0.9.7 and markets 0.6.0 2020-09-07 17:11:32 -04: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
Ł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
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
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
austinabell
39ef3a701b
Remove unsigned message pointer from Runtime 2020-08-27 17:34:45 -04:00
Steven Allen
5733c71c50 Lint everything
We were ignoring quite a few error cases, and had one case where we weren't
actually updating state where we wanted to. Unfortunately, if the linter doesn't
pass, nobody has any reason to actually check lint failures in CI.

There are three remaining XXXs marked in the code for lint.
2020-08-20 20:46:36 -07:00
Raúl Kripalani
efdc428d5d keep storage-fsm (renamed to storage-sealing) and sector-storage in extern. 2020-08-17 14:26:18 +01:00
Raúl Kripalani
3c17cd655e integrate extern/sector-storage into lotus proper. 2020-08-16 11:09:58 +01: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
Whyrusleeping
ed72aa1307 implement randomness distinction 2020-08-12 10:32:39 -07:00
Steven Allen
9248e5a572 Update specs-actors, cbor-gen, and go-address 2020-08-12 10:32:39 -07:00
Jakub Sztandera
ed2778f785
Make MpoolPushMessage message wait for the first message to be done
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-09 00:29:59 +02:00
Łukasz Magiera
cad59b045b More pond-related fixes 2020-08-07 16:07:48 +02:00
Jakub Sztandera
884d03f7f1
address feedback
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-07 04:09:01 +02:00
Jakub Sztandera
aa17d2bdf3
Add tests
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-07 01:57:21 +02:00
Łukasz Magiera
07bf155295 Merge remote-tracking branch 'origin/next' into feat/dyn-base-fee 2020-08-06 23:41:54 +02:00
Jakub Sztandera
5f826a2147
Update gas numbers
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 23:27:09 +02:00
Jakub Sztandera
c29dd72174
add check for feecap and premium to vm.checkMessage
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 21:45:03 +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
Dirk McCormick
aea1b0e293 fix: lint fixes 2020-08-06 12:04:10 -04:00
Dirk McCormick
4abc7416f6 fix: make DeleteActor(beneficiary) transfer funds to beneficiary (instead of burning funds) 2020-08-06 12:04:10 -04:00
Łukasz Magiera
f8b8ecc0c3 Consensus filter 2020-08-06 03:16:39 +02:00
Jakub Sztandera
d9ba8d3671
Change to scaling overestimation burn algorithm
Change the treshold to 1.1

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-05 02:12:11 +02:00
Jakub Sztandera
3058f280d9
Fix bad error message
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-05 02:10:25 +02:00
Jakub Sztandera
5405a5adc3
Sepearate ComputeGasOutputs into sepearate function, add tests
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-05 02:10:25 +02:00
Jakub Sztandera
5ff12a5d2d
Burn remainder of GasLimit over 1.3*gasUsed
GasToBurn = max(0, GasLimit - GasUsed + (3*GasUsed)/10)

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-05 02:10:25 +02:00
Jakub Sztandera
ae29d132ed
Make VerifyPost cheaper
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-31 21:38:23 +02:00
Aayush Rajasekaran
c881f287ad Update specs-actors and chain-val...again 2020-07-31 00:29:44 -04:00
Jakub Sztandera
7f722623ca
Allow messages with not enough funds for transfer to apply
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-30 16:23:30 +02:00
Aayush Rajasekaran
5e485a085a
Merge pull request #2637 from filecoin-project/gas/tag-verify-post
Use scaling VerifyPost cost
2020-07-28 21:22:23 -04: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
0b1d80d3e3 Rename constants to match CE spec 2020-07-28 17:26:55 -04:00
Aayush Rajasekaran
7153bda0be Correct MiningRewardTotal and calculation of filMined 2020-07-28 17:26:55 -04:00
Aayush Rajasekaran
de867d7a9a Correct calculation of TotalCircSupply 2020-07-28 17:26:55 -04:00
Jakub Sztandera
0d169dd947
Use scaling VerifyPost costs
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-28 22:31:43 +02:00
Jakub Sztandera
5d9c6cd02c
Add proof info to gas trace
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-28 22:31:43 +02:00
Steven Allen
bb54dc97b6 Fix incorrect ID CID optimization
Blocks inlined into CIDs can technically contain CIDs themselves. I'm guessing
this check was trying to skip "actor" CIDs (inline cids with raw blocks).
2020-07-23 23:22:44 -07: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
Jakub Sztandera
4abff16783
Update storage gas prices
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-23 22:56:32 +02:00
Łukasz Magiera
637ec168df
Merge pull request #2550 from filecoin-project/fix/runtime-logs
fix: correctly pass variadic args from runtime log
2020-07-23 20:42:52 +02:00
frrist
bd2363178d fix: correctly pass variadic args from runtime log 2020-07-23 10:13:16 -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
7d83349507
Format FIL as FIL
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-22 17:50:34 +02:00
Jakub Sztandera
b3bac0c9e8
Add better error messages for message pre-execution errors
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-22 17:50:34 +02:00
Jakub Sztandera
e1c9c4297b
use cid for cmp
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-20 15:29:07 +02:00
Łukasz Magiera
0ded061037 Get math to work 2020-07-18 00:15:21 +02: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
cb6767a02b Merge remote-tracking branch 'origin/next' into feat/actors-miner-refactor 2020-07-17 15:18:11 +02:00
Peter Rabbitson
e266f3b955 Bump fil-commcid and filecoin-ffi deps
Propagates correct on-chain commX CIDs
2020-07-17 00:38:42 +02:00
Jakub Sztandera
610ed0dc13
Change OnIpldGet
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 21:40:49 +02:00
Jakub Sztandera
4dd6f6400c
Make virtual gas real
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 20:01:57 +02:00
Jakub Sztandera
c0eb4b39ac
Reorg some gas charges
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 20:01:56 +02:00
Raúl Kripalani
0484496d92 Merge branch 'next' into mock-clock 2020-07-14 18:08:26 +01:00
Łukasz Magiera
faebc4c948 WIP Integrating specs-actors with refactored miner state 2020-07-14 13:45:45 +02:00
Łukasz Magiera
a778917806 gofmt 2020-07-13 13:35:10 +02:00
Łukasz Magiera
c1048a0353 vm: Separate logger for actors 2020-07-13 12:29:27 +02:00
Aayush Rajasekaran
eed44d12ba Add log method to Runtime 2020-07-12 00:30:42 -04:00
Raúl Kripalani
13de81b3b2 introduce the ability to mock time. 2020-07-10 15:51:45 +01:00
Aayush Rajasekaran
ad980b4966 VerifyConsensusFault should return an error if no fault is found 2020-07-07 01:29:16 -04:00
Jakub Sztandera
9936439608
Merge remote-tracking branch 'origin/master' into next
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-03 14:56:06 +02:00
Łukasz Magiera
14ae8c7272
Merge pull request #2156 from filecoin-project/fix/bench-analyze
Improve performance of bench import analyze
2020-07-02 19:35:18 +02:00
Jakub Sztandera
567b8082c3
Back to 10 callers
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:35 +02:00
Jakub Sztandera
c4158f12f1
Include proof number as extra in OnVerifyPost
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:35 +02:00
Jakub Sztandera
11dc902d53
Adjust OnMethodInvocation
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:34 +02:00
Jakub Sztandera
9ccd25b072
Update gas values, compute correlation coefficient
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
c68a8f802e
Adjust gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
bc88c632d1
Fix previous commit
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
1e17ea3fff
Adjust gas values
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
cd2595da67
Adjust gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:32 +02:00
Jakub Sztandera
4db61e71da
Reduce caller depth
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:32 +02:00
Jakub Sztandera
a2fd0aad41
More on OnActorExec
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:31 +02:00
Jakub Sztandera
01ac4e5da3
Gas on actor exec
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:30 +02:00
whyrusleeping
f8a1fb2321 fix vm abortf log message 2020-07-01 15:51:21 -07:00
Łukasz Magiera
4c422c2d50 specs-actors v0.7.1 2020-07-01 13:47:40 +02:00
Aayush Rajasekaran
1f57d9462c Don't return nil interfaces from runtime.Send() 2020-06-29 01:13:45 -04:00
Łukasz Magiera
a6d1323eba Update specs-actors to v0.7.0; More correct genesis sector import 2020-06-26 15:08:12 +02:00
Jakub Sztandera
10c4fae8c0
Make gas traces smaller, strip callers in import-bench
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-25 16:46:50 +02:00
Jakub Sztandera
b91e7a9860
Update to specs actors with ChargeGas interface
Based on `lotus-0.6.1-chargegas` in specs-actors.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-17 20:00:30 +02:00
Jeromy
f8c4b64782 improve chain import analyze output, add some rough virtual gas charges 2020-06-15 16:05:29 -07:00
Łukasz Magiera
0230362d33
Merge pull request #2025 from filecoin-project/deps/specs-actors-v0.6
specs-actors v0.6
2020-06-15 21:30:37 +02:00
Jakub Sztandera
8039701f9e
Use extra field in gastrace
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-15 19:52:04 +02:00
Łukasz Magiera
907364ce67 Update deps, fix more tests 2020-06-15 18:30:49 +02:00
Jakub Sztandera
a23a87a17f
Add virtual gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-15 16:18:05 +02:00
Jakub Sztandera
91ea039077
Change ellipsis, more accurate timing
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-12 20:46:04 +02:00
Jakub Sztandera
cd69e57a33
Expose more callers, ellipsis unimportant ones
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-12 18:49:29 +02:00
Jakub Sztandera
071ddf6563
Add aggregate number, add number of bytes for storage calls
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 22:25:24 +02:00
Jakub Sztandera
c90d35869b
Add gas tracing
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 21:59:39 +02:00
Jakub Sztandera
6acc9a62f8
Split gas internally into compute gas and storage gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 20:37:14 +02:00
Łukasz Magiera
c8046f4597 Merge branch 'next' of github.com:filecoin-project/go-lotus into next 2020-06-11 18:24:51 +02:00
waynewyang
8354bd91db fix:the condition of time-offset mining fault 2020-06-11 23:52:44 +08:00
Jakub Sztandera
c3f23ddce8
Refactor ExecutionResult to ExecutionTrace
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 15:53:47 +02:00
Jeromy
512270593b clean up some of the more spammy logs 2020-06-11 12:31:29 +02:00
Jeromy
51f1712564 add a simple semaphore to batch verify seals 2020-06-05 10:47:49 -07:00
Jakub Sztandera
673a972fe9
Merge remote-tracking branch 'origin/master' into next
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 22:49:27 +02:00
Jeromy
9b867a221a add subcall timing to compute state output 2020-06-02 12:53:24 -07: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
Aayush Rajasekaran
7dd25c3ac5 Correctly handle transfers with sender = receiver 2020-05-29 12:15:41 -04:00
Łukasz Magiera
785eeb1eee
Merge pull request #1850 from filecoin-project/chore/lint
Cleanup many lint warnings
2020-05-29 18:06:06 +02:00
Jeromy
e2a554c2e6 update specs actors to version with batch porep verification 2020-05-28 13:19:18 -07:00
Jakub Sztandera
d6615b6286
Cleanup many lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-05-27 22:53:20 +02:00
Jeromy
646800b8a8 update to latest ffi 2020-05-22 09:26:14 -07:00
frrist
9165f14693 feedback: fatal errors in vm.transfer 2020-05-18 12:00:52 -07:00
frrist
9305eca97c don't ignore transfer error in delete actor 2020-05-18 12:00:52 -07:00
frrist
0c2e4e2d4f return correct exitcodes from vm transfer 2020-05-18 12:00:52 -07:00
Aayush Rajasekaran
aec168e05f Update specs-actors, re-enable full chain validation 2020-05-12 19:52:33 -04:00
Aayush Rajasekaran
46fb5f8602 update CV, skip nested sends test 2020-05-12 14:14:00 -04:00
Łukasz Magiera
4ea021d151 Merge pull request #1701 from filecoin-project/asr/syncvalidity
Message validation changes
2020-05-12 13:48:33 +02:00
Aayush Rajasekaran
6bf2dcd97c Message validation changes 2020-05-11 21:54:44 -04:00
Łukasz Magiera
ec83b9cf7c Fix tests post specs-actors update 2020-05-11 23:26:33 +02:00
Aayush Rajasekaran
dd79c66d41 Update and re-enable chain-validation 2020-05-06 21:44:09 -04:00
Whyrusleeping
97130684a2 Merge pull request #1680 from filecoin-project/deps/faster-publish-deals
update to specs-actors code with faster publish deals
2020-05-06 14:45:17 -07:00
Aayush Rajasekaran
187e386740 Bugfix: Correctly transfer gas when failing to charge for retValue 2020-05-06 16:53:32 -04:00
Jeromy
fa59cdc2ad update to specs-actors code with faster publish deals 2020-05-05 17:06:32 -07:00
Aayush Rajasekaran
8a9862bdb4 The VerifySig syscall should verify sigs 2020-05-05 15:26:34 -04:00
Jeromy
a553d438c0 dont override exit codes for actor creation failure 2020-05-04 16:31:26 -07:00
Łukasz Magiera
ed500dbbdf Merge remote-tracking branch 'origin/testnet/3' into asr/createactor 2020-04-30 21:29:04 +02:00
Aayush Rajasekaran
a047e158ed Add some validity checks to runtime.CreateActor() 2020-04-30 14:21:29 -04:00
Aayush Rajasekaran
bd1ac4d91b Only charge for actor creation after making a meaningful state change 2020-04-30 14:18:26 -04:00
Aayush Rajasekaran
d9a1d912fd Elevate an actor construction fail-case to fatal 2020-04-30 13:46:33 -04:00
frrist
c66415ae4c fix: insufficient gas remaining to cover retval
proceed as in the case of method execution failure.
2020-04-29 16:38:34 -07:00
Łukasz Magiera
89b19af43f specs-actors v0.3 2020-04-29 20:06:05 +02:00
Whyrusleeping
cd5cbcfe4f Merge pull request #1627 from filecoin-project/fix/safe-actor-serialization
vm: Don't treat actor state serialization errors as fatal
2020-04-28 10:50:53 -07:00
Łukasz Magiera
9dcb42328e gofmt 2020-04-28 19:27:13 +02:00
Łukasz Magiera
c760a88c22 vm: don't treat actor state serialization errors as fatal 2020-04-28 15:21:31 +02:00
Aayush Rajasekaran
5900d765fd caller must be validated exactly once 2020-04-28 00:07:47 -04:00
Whyrusleeping
e65d293ba4 Merge pull request #1607 from filecoin-project/feat/chainwatch-updates
chainwatch: Record drand entries
2020-04-27 16:23:47 -07:00
Aayush Rajasekaran
e46c4652a5 Forbid internal message in State Transaction() 2020-04-25 02:01:26 -04:00
Aayush Rajasekaran
832657edfb Eliminate use of SysErrInternal, some interop changes 2020-04-25 01:55:59 -04:00
Łukasz Magiera
e38484a109 Merge remote-tracking branch 'origin/testnet/3' into feat/chainwatch-updates 2020-04-25 00:27:59 +02:00
Łukasz Magiera
0522af155d chainwatch: Record drand entries 2020-04-25 00:25:33 +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
Jeromy
7ee42e61d5 add command to analyze import bench output 2020-04-23 16:48:54 -07:00
Jeromy
24b7661837 fix up some tests 2020-04-17 13:44:13 -07:00
Łukasz Magiera
93b2b6d65d Merge branch 'testnet/3' into feat/windowed-post 2020-04-17 18:38:20 +02:00
Jeromy
4153f128ef a more betterer supply impl 2020-04-16 16:03:38 -07:00
Łukasz Magiera
706c0b8d3a Stub syscalls.TotalFilCircSupply 2020-04-17 00:19:54 +02:00
Whyrusleeping
0db5fc422a Merge pull request #1534 from filecoin-project/patch/syscalls
VerifyConsensusFault syscall impl
2020-04-16 13:33:58 -07:00
Henri S
8594af970f fix typo: 2020-04-16 15:52:49 -04:00
Aayush Rajasekaran
6a8e4bf87e Lower a log level 2020-04-16 15:34:01 -04:00
Aayush Rajasekaran
14ad808a00 Remove unused fields from VM 2020-04-16 15:34:01 -04:00
Łukasz Magiera
8338be3a6e Fix genesis creation 2020-04-16 19:17:56 +02:00
Łukasz Magiera
98f3cab24e Update specs-actors 2020-04-16 18:41:45 +02:00
Henri S
a4cdfe89fd fix parent grinding check 2020-04-13 15:55:53 -04:00
Henri S
23dc776bd1 finalize logic, still need to import appropriate fields to the shim 2020-04-13 15:55:53 -04:00
Henri S
aa5cec39ca first stab 2020-04-13 15:55:53 -04:00
Łukasz Magiera
a2554952d1 Some electionPoSt -> winningPoSt renaming 2020-04-11 00:22:45 +02:00
Łukasz Magiera
072dd8b744 Merge remote-tracking branch 'origin/testnet/3' into feat/windowed-post 2020-04-10 20:38:25 +02:00
Łukasz Magiera
b0fe8b8b4c v25: get bench to almost work 2020-04-10 14:19:06 +02:00
Łukasz Magiera
70d654e4a6 Merge pull request #1527 from filecoin-project/feat/drand
Initial randomness beacon implementation
2020-04-09 19:48:09 +02:00
Aayush Rajasekaran
17e9feb633 Sever the API's dependency on VM 2020-04-08 18:27:31 -04:00
Jeromy
8e0ca306d2 more wiring up of drandomness 2020-04-08 08:11:42 -07:00
Jeromy
ab51501849 remove todo 2020-04-03 15:50:52 -07:00
Jeromy
2d5becaaba further removals 2020-04-03 15:05:59 -07:00
Jeromy
4c6fa1b2c0 handle some runtime error edge cases 2020-04-03 14:38:11 -07:00
Jeromy
212c346c21 avoid flushing disk when doing state tree snapshots 2020-04-02 17:18:25 -07:00
Łukasz Magiera
11777c5f24 Merge pull request #1502 from filecoin-project/feat/import-bench
add a command to lotus-bench to benchmark importing and validating
2020-04-03 01:30:12 +02:00
Jeromy
beaa3dffab add a command to lotus-bench to benchmark importing and validating a chain 2020-04-02 16:18:38 -07:00
Jeromy
8a265a0e8d use exitcode type from specs actors instead of byte 2020-04-02 11:24:38 -07:00
Jakub Sztandera
013f441658 Fix charge gas in case of overcharge
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-04-01 22:55:10 +02:00
Łukasz Magiera
95ee1c1cde Extract sector-storage 2020-03-28 01:32:39 +01:00
Łukasz Magiera
de1f2be505 Merge pull request #1458 from filecoin-project/feat/merge-sectorbuilder
Merge sectorbuilder into sectorstorage
2020-03-27 18:53:58 +01:00
Jeromy
97a7b449e6 use charge gas safe in places we return errors 2020-03-27 10:11:21 -07:00
Jeromy
672956af5d addressing review 2020-03-26 20:13:32 -07:00
Jeromy
1b50be09af dont use fatal errors in the vm 2020-03-26 20:03:04 -07:00
Travis Person
090261f304 Revert gas exhausted exit code to SysErrOutOfGas 2020-03-27 00:19:34 +00:00
Jakub Sztandera
06cfbf5742 Switch exitcodes
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-26 22:11:06 +01:00
Łukasz Magiera
e050e0307e Cleanup after dropping sectorbuilder 2020-03-26 20:35:16 +01:00
Łukasz Magiera
4be54a976c Merge sectorbuilder into sectorstorage 2020-03-26 03:51:06 +01:00
Jakub Sztandera
300c89f541 Update to new sepcs actors, more debug
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-26 01:02:13 +01:00
Jeromy
088d693eea code review changes 2020-03-25 12:13:09 -07:00
Aayush Rajasekaran
7b9872c473 don't skip any tests 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
ebcefa80e3 provide msg length to vm::ApplyMessage 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
Aayush Rajasekaran
ad15750be3 Charge sender no gas, and penalise miner for certain invalid messages 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
09a46e5d80 fix some gas charge bugs, and make our new account actor creation follow GFC 2020-03-25 08:25:03 -04:00
Łukasz Magiera
201d0a4b19 Merge remote-tracking branch 'origin/testnet/3' into feat/new-workers 2020-03-25 01:02:23 +01:00
Jeromy
ec0d0a51db chain validation nil return values should be []byte{} 2020-03-24 13:09:04 -07:00
Łukasz Magiera
66a682b55d Merge remote-tracking branch 'origin/testnet/3' into feat/new-workers 2020-03-24 19:09:02 +01:00
Aayush Rajasekaran
d5b1bfe197 only skip one test 2020-03-24 04:44:50 -04:00
Aayush Rajasekaran
df13cfa52b Only resolve origin to pubkey address when creating a new account actor 2020-03-24 04:43:09 -04:00
Aayush Rajasekaran
753e8ff7f5 Award gas fees to miners correctly 2020-03-24 03:35:58 -04:00
Aayush Rajasekaran
9ccc02d664 Load actor states afresh before making state changes
- Not doing this is causing bugs when reverting, since the actor cache gets reset
2020-03-24 03:33:22 -04:00
Jeromy
14591e718d skip tests so we can get this merged in 2020-03-23 18:52:39 -07:00
Jeromy
2228f13f99 a couple vm fixes 2020-03-23 18:50:58 -07:00
Jeromy
6fe245a278 use proper exitcodes for caller validation 2020-03-23 18:50:28 -07:00
Aayush Rajasekaran
066b755b6a set up initial account state of new Secp accounts 2020-03-23 18:50:28 -07:00
Aayush Rajasekaran
72c6552b0b Allow invocation of account actor methods 2020-03-23 18:50:28 -07:00
Aayush Rajasekaran
05d43af3fc Only try to resolve origin address during top-level invocation 2020-03-23 18:50:28 -07:00
Jeromy
8bc4195b7a WIP: updating and getting chainval tests passing 2020-03-23 18:50:18 -07:00
Łukasz Magiera
eeec5a1bba Merge pull request #1274 from filecoin-project/feat/doc/actors
doc: add comments related to actor code review
2020-03-23 12:49:41 +01:00
Łukasz Magiera
e6aa01653a Merge remote-tracking branch 'origin/testnet/3' into feat/new-workers 2020-03-20 23:42:46 +01:00
Whyrusleeping
a3fd1d4b51 Merge pull request #1401 from filecoin-project/fix/nonce-miss-no-gas
Missmatching nonce does not charge gas
2020-03-20 14:56:33 -07:00
whyrusleeping
84fd969710 take snapshot after gas transfer so its not reverted on method failure 2020-03-20 13:50:46 -07:00
Jakub Sztandera
4ba4de3379 Missmatching nonce does not charge gas
It should charge miner but we don't have that mechanism yet.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-20 20:44:45 +01:00
Aayush Rajasekaran
ef288b8a6c Calculate new actor addresses as per updated spec 2020-03-20 15:43:08 -04:00
Whyrusleeping
7b69697439 Merge pull request #1434 from filecoin-project/feat/more-gas
Rework gas charging
2020-03-20 12:18:18 -07:00
frrist
100fc47812 print chain-validation test name when running
- makes debugging easier
2020-03-20 10:35:59 -07:00
Jakub Sztandera
ac09a6432c Skip failing tests, update chain-validation
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-20 18:21:13 +01:00
Jakub Sztandera
ae40654907 Rework gas charging 2020-03-20 03:26:40 -04:00
Łukasz Magiera
1ed7779701 Merge remote-tracking branch 'origin/testnet/3' into feat/new-workers 2020-03-19 03:28:55 +01: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
Aayush Rajasekaran
f22f427cde Put the correct error into ExecutionResult 2020-03-18 02:57:11 -04:00
Aayush Rajasekaran
51cf5d5f1b New Actor Addresses should be generated as per spec
- The pubkey address address of the sender should be used, not the ID address
- We should use the internal callSeqNum as input (was hard-coded to zero)
- The external message nonce should be used, not the actor's nonce in the post-increment state
2020-03-18 02:57:11 -04:00
Łukasz Magiera
e6ec20b4ca Merge branch 'testnet/3' into feat/new-workers 2020-03-13 17:58:13 +01:00
Frrist
7371274ea7 update chain-validation: adds miner workflow test (#1403)
* update chain-validation. adds miner workflow test
* replace real sealing with mocked impl
2020-03-12 10:22:45 -07:00
Łukasz Magiera
eb61a36fd7 workers: RPC scaffolding 2020-03-11 02:58:02 +01:00
Jakub Sztandera
f3c4288311 Check for correct nonce before taking gas
Otherwise as a miner you are able to include an invalid message forever
and get whole GasLimit of gas from it every time.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-10 21:14:50 +01:00
whyrusleeping
1beab85d61 Drop debug messages 2020-03-09 23:46:13 -07:00
whyrusleeping
85e17fa5b0 fix state cid accounting after 'Transaction' calls 2020-03-09 22:20:46 -07:00
whyrusleeping
114cb2d2aa squash the spec shim and the vmcontext into the new runtime type 2020-03-09 21:44:29 -07:00
whyrusleeping
bf6948f8d6 update to latest specs-actors 2020-03-08 21:21:46 -07:00
whyrusleeping
24bf720a9a Merge branch 'master' into testnet/3 2020-03-07 16:46:12 -08:00
whyrusleeping
34ad13fc22 fix initial reward actor balance 2020-03-06 17:33:24 -08:00
Aayush Rajasekaran
340afc3503 Add information about internal message executions to SimulationResult
- The VM now tracks a list of ExecutionResults to keep track of internal messages
2020-03-06 11:11:06 -08:00