Commit Graph

231 Commits

Author SHA1 Message Date
Dirk McCormick
7b7a5b0b21 revert: changes to OnDealExpiredOrChanged in #5431 #7201 2021-08-30 10:42:41 +02:00
dirkmc
77a19774cf fix events API timeout handling for nil blocks (#7184) 2021-08-27 09:05:00 +02:00
Peter Rabbitson
ed387b43cc Bump go-multihash, adjust test for supported version 2021-07-26 17:50:19 +02:00
hunjixin
eef3fd5d7a cache loaded block messages 2021-07-19 15:13:53 +08:00
Łukasz Magiera
3ea39f76e1 events: Fix handling of multiple matched events per epoch 2021-05-30 17:20:14 +02:00
Łukasz Magiera
81bd27911f Propagate StateMsg api changes 2021-04-05 19:56:53 +02:00
Łukasz Magiera
deb2b90b6a Fix lotus/miner build 2021-04-05 13:23:46 +02:00
frrist
0b579c1e03 feat(events): define Observer intreface for events
- allows tipset apply and revert to be observed
2021-03-22 15:37:44 -07:00
Raúl Kripalani
7f0f7d0b36 Merge branch 'master' into refactor/lib/blockstore 2021-02-28 19:55:23 +00:00
Łukasz Magiera
c59e2fea5b Use correct contexts in storageadapter 2021-02-02 18:43:49 +01:00
Raúl Kripalani
d1104fec4c rename blockstores for consistency. 2021-01-29 23:17:25 +00:00
Raúl Kripalani
b0cbc932bd consolidate all blockstores in blockstore package. 2021-01-29 20:01:00 +00:00
Łukasz Magiera
e1be89b442
Merge pull request #5159 from iand/fix/event-hang
fix(events): avoid potential hang when starting event listener
2020-12-09 19:40:02 +01:00
Ian Davis
c6f5214657
fix(events): unlock mutex before error returns 2020-12-09 13:37:56 +00:00
Ian Davis
696469aae7
fix: avoid potential hang when starting event listener
It was possible for NewEvents to never return, blocked on waiting for a WaitGroup to be done.
The call to Done was in a goroutine that could exit before reaching the Done call.

Replace the WaitGroup with a channel that is closed to signal that initialisation is complete.
Also, while we are waiting on the channel, wait on the context so we can exit clealy if the
context is canceled.
2020-12-09 11:29:48 +00:00
Łukasz Magiera
eb2be69ace
events: use %v to log errors 2020-11-24 17:51:19 +01:00
yaohcn
7c0b6f41d8 fix log format 2020-11-24 19:09:48 +08:00
frrist
d25e5d1c08 polish: add DeffAddressMap method to init wrapper
- replace logic in predicates
2020-11-16 11:45:25 -08:00
Łukasz Magiera
961a25298b predicates: Fast StateGetActor wrapper 2020-11-12 23:45:06 +01:00
Łukasz Magiera
c6a8efff7d
Merge pull request #4623 from filecoin-project/feat/cache-deal-state-matcher
Cache deal states for most recent old/new tipset
2020-10-31 01:00:11 +01:00
Dirk McCormick
79a8ff04fd refactor: simplify chain event Called API 2020-10-30 14:00:32 +01:00
Dirk McCormick
f79652c28c feat: cache deal states for most recent old/new tipset 2020-10-28 16:55:48 +01:00
Steven Allen
4e730b5ec8 port to v2 imports 2020-10-21 12:16:23 -07:00
Steven Allen
f32b3bf99b fix a race in tipset cache usage
This tipset cache is shared between multiple services and is called from
multiple places.
2020-10-09 17:32:45 -07:00
Steven Allen
46f5b62a76 Remove a misleading miner actor abstraction
We shouldn't implement CBOR functions on the "abstract" miner info. Otherwise,
we could end up trying to actually _use_ this "abstract" info when decoding
state (which won't work across version).

Also remove the use of these CBOR functions, and instead explicitly use miner0
types. We'll have to abstract over versions eventually, but we'll probably need
some form of abstract miner builder (or maybe even adding some "add sector",
etc. functions to the current miner abstraction?
2020-09-23 14:49:53 -07:00
Aayush Rajasekaran
819180f739 Implement inefficient OnAddressMapChange predicate 2020-09-23 02:15:01 -04:00
Aayush Rajasekaran
476e7992e8 Add an error return to all actor state interface methods 2020-09-23 01:51:38 -04:00
Steven Allen
5314ba8c6d remove ptr indirection 2020-09-22 10:55: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
Aayush Rajasekaran
694463ffbe More lint fixes 2020-09-18 03:06:28 -04:00
Aayush Rajasekaran
37de154a7c Fixup tests 2020-09-18 01:56:21 -04:00
Steven Allen
daa441b989 simplify market diff 2020-09-17 21:48:50 -07:00
Steven Allen
f2a0779bb9 remove specs-actors import 2020-09-17 21:41:36 -07:00
Steven Allen
b2ee59024f improve diff logic
* Make diffing work across versions.
* Start porting more chainwatch logic.
2020-09-17 21:39:34 -07:00
Łukasz Magiera
6eda53565f Most tests passing 2020-09-17 17:30:24 +02:00
hannahhoward
691bd9f442 feat(markets): complete markets conversion
complete markets conversion to using chain/actors types, also replacing DealProposal/DealState
interfaces with structs
2020-09-17 00:43:14 -07:00
Aayush Rajasekaran
9e48dd211a Fixups 2020-09-17 02:34:15 -04:00
Aayush Rajasekaran
b5ba7a0fad Miner migration 2020-09-17 02:21:16 -04:00
hannahhoward
80b6994fe2 feat(market): update state diffing for market actor
Update to abstract actor for markets state diffing. Also move the diff adt functions inside the
abstract actors
2020-09-16 19:14:07 -07:00
hannahhoward
05c11531b1 feat(paych): convert paych actor
build abstraction for paych actor and switch to using it in payment channel manager and state
predicates
2020-09-15 21:06:04 -07:00
Steven Allen
9804310cc8 Update specs-actors to 0.9.10
Moves the Keyer type (and helpers) into go-state-types.
2020-09-14 14:32:57 -07:00
Raúl Kripalani
6d29d75724 Merge branch 'master' into inmem-journal 2020-09-14 12:17:45 +01:00
Aayush Rajasekaran
39755a294a Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
Dirk McCormick
76a1b3286b fix: if cache best is nil, return chain head 2020-09-07 14:43:06 +02:00
Raúl Kripalani
efdfd3ee3e Merge branch 'master' into inmem-journal 2020-08-26 16:38:23 +01: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
Łukasz Magiera
3b23ab952b gofmt 2020-08-13 13:44:43 +02:00
frrist
69a472c4ea bug: fix id_address_map table conflicts on reorg 2020-08-12 16:54:45 -07:00
frrist
ce21557d64 bug: fix bug in predicate and add tests 2020-08-12 16:52:08 -07:00
Steven Allen
9248e5a572 Update specs-actors, cbor-gen, and go-address 2020-08-12 10:32:39 -07:00
Steven Allen
9135a5d048 Pass bitfields by-value
This ensures we can't end up decoding nil bitfields from clients when not
expecting them.

Part of https://github.com/filecoin-project/specs-actors/issues/895. Please see
this issue for details and leave any comments there.
2020-08-12 10:32:39 -07:00
Raúl Kripalani
92598237c3 Merge branch 'next' into inmem-journal 2020-08-11 12:41:11 +01:00
hannahhoward
f4720ddb2c feat(state): add predicate for deal id watching 2020-08-04 17:28:05 -07:00
Aayush Rajasekaran
c881f287ad Update specs-actors and chain-val...again 2020-07-31 00:29:44 -04:00
Łukasz Magiera
4d328cad54 Get things to mostly work 2020-07-30 14:31:50 +02:00
Łukasz Magiera
ed04c80bb1 Fix precommit deposit 2020-07-28 20:55:31 +02: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
hannahhoward
8141fecaa9 feat(paych): add simple integration test 2020-07-22 13:35:10 -04:00
Raúl Kripalani
b8475114ba Merge branch 'next' into inmem-journal 2020-07-21 17:42:51 +01:00
Łukasz Magiera
5301aa4db2 Update specs-actor with unsafa param fixes 2020-07-20 14:31:18 +02:00
Raúl Kripalani
4d2d8b2d11 Merge branch 'next' into inmem-journal 2020-07-20 10:38:58 +01:00
Łukasz Magiera
1a1bd38495 Merge remote-tracking branch 'origin/master' into next 2020-07-18 00:43:08 +02:00
frrist
7ff468ce85 feat: track miner precommit
- add materalized view showing all miner sector info
2020-07-17 12:25:54 -07:00
Raúl Kripalani
695f6cfe45 wip in-memory journal. 2020-07-17 14:34:42 +01:00
Łukasz Magiera
cb6767a02b Merge remote-tracking branch 'origin/next' into feat/actors-miner-refactor 2020-07-17 15:18:11 +02:00
Łukasz Magiera
bbfa66636d More test fixing 2020-07-14 22:30:25 +02:00
Raúl Kripalani
0484496d92 Merge branch 'next' into mock-clock 2020-07-14 18:08:26 +01:00
Łukasz Magiera
2e4ed57363 Merge remote-tracking branch 'origin/master' into next 2020-07-13 13:34:56 +02:00
Raúl Kripalani
973dbd6a13 Merge branch 'next' into mock-clock 2020-07-13 11:29:53 +01:00
Łukasz Magiera
39d609a661
Merge pull request #2169 from waynewyang/evnet
set called 'true' after handle be called
2020-07-10 22:28:00 +02:00
Łukasz Magiera
89a6b6842c Merge remote-tracking branch 'origin/master' into next 2020-07-10 22:24:41 +02:00
Raúl Kripalani
13de81b3b2 introduce the ability to mock time. 2020-07-10 15:51:45 +01:00
frrist
bf6b76a4fb feat: add market deal state & proposal predicates
- detects changes in the market deal proposal and market deal state
amts.
2020-07-09 14:43:21 -07:00
Łukasz Magiera
2c00b92325 Merge remote-tracking branch 'origin/master' into next 2020-07-08 21:47:05 +02:00
frrist
d78b7e57c7 polish: include key in AdtArrayDiff interface
- some values do not contain their keys
2020-07-08 11:19:14 -07:00
frrist
509e3b653c polish: genericize adt array diff & extract store
- adds testing for adt diff
2020-07-08 11:19:14 -07:00
Aayush Rajasekaran
56a892e5f9
Merge pull request #2246 from TroyWind/fit-multiple-piece-into-a-sector
a sector contains multiple deals(pieces), the state of deals incorrect
2020-07-08 11:21:41 -04:00
Łukasz Magiera
d16de56280 gofmt 2020-07-08 14:35:53 +02:00
Łukasz Magiera
b049c5a7d1 Merge remote-tracking branch 'origin/master' into next 2020-07-08 14:35:40 +02:00
frrist
3c6e46cd70 feat: add miner sector predicate and test
-polish: OnActorStateChanged operate over TipSetKey
    - it was calling key() interally and tipsetkeys are cheaper to get than
the full tipset
  -polish: improve predicate method names
2020-07-06 14:27:39 -07:00
刘林欣
ff4d9ecc77 fit in cases where a sector contains multiple deals, the state of each deal is correct 2020-07-03 09:20:47 +08:00
hannahhoward
92bb5bd915 fix(lint): fix lint errors 2020-07-01 12:06:29 +02:00
Dirk McCormick
a3abff768c fix: dont register state change if deal is not present in from and to states 2020-07-01 12:06:29 +02:00
Dirk McCormick
1fd1c2edbd feat: allow nil deal state change (deal removed) 2020-07-01 12:06:29 +02:00
Dirk McCormick
49dccf4284 fix: concurrent map access panic 2020-06-30 14:24:08 -04:00
Dirk McCormick
c72def55fe test: add more predicate tests 2020-06-29 11:21:29 -04:00
waynewyang
048d0e0d7a set 'true' after handle be called 2020-06-29 21:37:08 +08:00
Dirk McCormick
659c723ea3 fix: embed hcEvents into events as pointer so as not to copy lock 2020-06-26 15:42:44 -04:00
Dirk McCormick
bbb9a9cd1a refactor: lint fixes 2020-06-26 15:36:48 -04:00
Dirk McCormick
db1773d708 docs: add predicate docs 2020-06-26 14:59:23 -04:00
Dirk McCormick
a1b009328d refactor: simplify diff 2020-06-26 14:43:46 -04:00
Dirk McCormick
393a9ca4f2 test: predicates test 2020-06-26 14:41:19 -04:00
Dirk McCormick
abad4a3941 refactor: modify predicates API 2020-06-25 17:43:37 -04:00
Dirk McCormick
728afc0587 refactor: remove state API example 2020-06-25 12:46:43 -04:00
Dirk McCormick
95a9dc9db0 refactor: use struct instead of array for state change 2020-06-25 12:43:06 -04:00
Dirk McCormick
b62fef7541 feat: include previous TS in StateChangedHandler 2020-06-25 12:43:06 -04:00
Dirk McCormick
dd490220d7 refactor: Extract message-specific code from calledEvents
This allows us to create a general purpose head change events manager that can be used for call events and also for state change events.
2020-06-25 12:43:06 -04:00
hannahhoward
7f932b96ae WIP 2020-06-25 12:41:50 -04:00
Jakub Sztandera
008a2969b2
Fix two races in events
Also race fix: depends on https://github.com/ipfs/go-blockservice/pull/65
Resolves #2092, #2099, #2108, #1930, #2110

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-24 17:05:24 +02:00