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
4c489d18a2
track expected nonce in mpool, refuse messages with large gaps
2020-09-03 15:28:44 +03:00
Raúl Kripalani
3206f92063
Merge branch 'master' into inmem-journal
2020-09-02 19:50:52 +01:00
刘林欣
0926f95979
remove the unnecessary err check
2020-08-31 15:11:45 +08: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
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
vyzo
ad889a7240
rate limit messages per actor by enforcing maximum pending message limit
2020-08-26 22:40:10 +03:00
vyzo
d3e95d6b77
cast min base fee to uint64
2020-08-26 21:37:32 +03:00
vyzo
8db262c941
check gas fee cap for minimum value
2020-08-26 21:23:28 +03:00
vyzo
793eda986b
comment out Value inclusion for required funds tracking
...
we are not sure whether we want it yet.
2020-08-26 21:10:46 +03:00
vyzo
8848c549a0
move msg serialization outside of lock, consistently use curTs
2020-08-26 19:42:56 +03:00
vyzo
4919a005d3
always verify message min gas
2020-08-26 19:37:27 +03:00
Raúl Kripalani
efdfd3ee3e
Merge branch 'master' into inmem-journal
2020-08-26 16:38:23 +01:00
Raúl Kripalani
4e1ef09751
make journal a global var.
2020-08-26 16:09:37 +01:00
vyzo
7a7066896e
better code for getRequiredFunds
2020-08-26 15:37:42 +03:00
vyzo
a2c0c10d2a
correctly account for message replacement in required funds tracking
2020-08-26 15:27:09 +03:00
vyzo
c473d3c682
rename ErrValidationFailure to ErrSoftValidationFailure
...
to make it clear to readers that this failure is soft; we might be out of sync.
2020-08-26 15:16:04 +03:00
vyzo
87e6c0973a
include message Value only in soft validation failures
2020-08-26 15:13:50 +03:00
vyzo
78876947a4
ErrBroadcastAnyway is now ErrValidationFailure
2020-08-26 15:03:13 +03:00
vyzo
4adb83eaae
check aggregate pending message required funds against balance
2020-08-26 14:58:26 +03:00
vyzo
4ac9828b0c
track required funds in message set
2020-08-26 14:38:26 +03:00
vyzo
77f6e0d4f8
refactor balance check, apply it in PushWithNonce
2020-08-26 14:23:34 +03:00
vyzo
835dbfe001
check message before adding in PushWithNonce
2020-08-26 14:13:46 +03:00
vyzo
da9630c561
remove duplicate check
...
gas limit is checked against block gas limit in ValidForBlockInclusion
2020-08-26 14:02:34 +03:00
vyzo
62b15ecc12
remove bug line
2020-08-25 13:41:20 +03:00
vyzo
9c68123ede
add test for Updates, fix behaviour for closed mpool
2020-08-25 13:29:09 +03:00
vyzo
a01fa11a26
exercise debug code, fix deadlock
2020-08-25 13:03:50 +03:00
vyzo
7e81081899
initialize mpool ts _before_ loading local messages
2020-08-25 08:49:15 +03:00
Jakub Sztandera
33b12782e4
Take into account messages in current tispet by executing it
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-25 04:02:06 +02:00
Jakub Sztandera
b2ff231c48
Fix error fmt string
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-25 03:14:52 +02:00
Jakub Sztandera
d921791c55
Add comment
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-25 03:13:43 +02:00
whyrusleeping
cf3298cd04
more correctly handle discrepancies between mempools head and the mining base
2020-08-24 17:21:03 -07:00
Jakub Sztandera
aacfcba400
Check ValidForBlockInclusion in mpool
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-25 01:01:16 +02:00
vyzo
817358f1bb
better semantics for mpool clear local argument
...
local messages should be kept unless the parameter is true
2020-08-21 23:48:35 +03:00
vyzo
087955e927
add localonly option to MpoolClear
2020-08-21 23:32:41 +03:00
vyzo
e33d398c33
remove pending local messages from the datastore when clearing the mpool
2020-08-21 23:32:41 +03:00
vyzo
3027283756
add MpoolClear api
2020-08-21 23:32:41 +03:00
vyzo
161cb32078
recover from errors in head change
2020-08-21 23:32:41 +03:00
vyzo
4287f76ed4
fix deadlock in mpool.Push
2020-08-18 10:19:46 +03:00
vyzo
3b6e2bdb7b
trigger early republish from head changes
2020-08-17 10:03:39 +03:00
Łukasz Magiera
43586ed9a1
Merge pull request #3000 from filecoin-project/feat/mpool-add-semaphore
...
Add semaphore in push and friends to reduce lock contention
2020-08-12 21:53:59 +02:00
Jakub Sztandera
f7c222e42e
Validate message pool config, validate GasPremium < GasFeeCap
...
don't use configured RBF for mpool
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-12 20:31:34 +02:00
vyzo
f2ac17845b
relinquish the lock while signing in PushWithNonce
2020-08-12 20:26:58 +03:00
vyzo
7be18df6ea
add semaphore in push and friends to reduce lock contention
2020-08-12 10:38:40 +03:00
vyzo
cf34fe5cc3
extend the republish interval to something more reasonable
...
pubsub timecache duration + 5 blocks + propagation delay
2020-08-12 09:13:57 +03:00
vyzo
7396212c89
slightly increase the replublish interval to include the propagation delay as well
2020-08-12 09:13:57 +03:00
vyzo
e876617c82
new message republishing logic
2020-08-12 09:13:57 +03:00
vyzo
42951d05a5
refactor messagepool provider out of the main messagepool implementation
2020-08-12 09:13:57 +03:00
Raúl Kripalani
200b0f72cc
mpool/repub: only record in journal if actually repubbing.
2020-08-11 15:06:13 +01:00
Raúl Kripalani
92598237c3
Merge branch 'next' into inmem-journal
2020-08-11 12:41:11 +01:00
Jakub Sztandera
3710f33e14
Don't reject messages that don't pass RBF, ignore them
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-09 03:17:40 +02:00
Łukasz Magiera
af15273f71
gas: Corruntly do float math
2020-08-08 00:41:57 +02:00
vyzo
f6e8f02fd2
add persistence for mpool config
2020-08-07 20:10:09 +03:00
vyzo
1b56b88132
add cooldown to message pruning
2020-08-07 19:51:49 +03:00
vyzo
42e1338ffe
mpool config
2020-08-07 19:51:49 +03:00
Jakub Sztandera
2b2b632cd6
Make mpool select only profitable messages
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-07 00:40:25 +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
Whyrusleeping
43491cb7ed
Merge pull request #2768 from filecoin-project/fix/add-explanation
...
Fix/add explanation
2020-08-01 16:59:20 -07:00
lanzafame
f2d1fbdfa5
Add explanation to channel magic
2020-08-02 09:57:34 +10:00
whyrusleeping
9c51b48754
update some numbers
2020-08-01 16:56:38 -07:00
whyrusleeping
255777a4a9
implement dumb pruning
2020-08-01 15:54:21 -07:00
whyrusleeping
fe80f4b830
WIP: message pool pruning
2020-08-01 14:57:34 -07:00
Jakub Sztandera
4a92422f8b
Prevent Pushing messages not valid for block inclusion
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-29 19:15:24 +02:00
Jakub Sztandera
5eb74ba3f7
Revert "Prevent Pushing messages not valid for block inclusion"
2020-07-29 19:06:32 +02:00
Jakub Sztandera
c17c653eb1
Prevent Pushing messages not valid for block inclusion
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-29 18:34:10 +02:00
whyrusleeping
7b29a1ae73
only republish the next few messages from your mempool
2020-07-28 16:31:05 -07:00
Jakub Sztandera
fc2c737e05
Improve RBF error message
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-23 20:44:55 +02:00
Jakub Sztandera
629e03f303
Apply sequence of messages
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-22 18:16:07 +02:00
Raúl Kripalani
b8475114ba
Merge branch 'next' into inmem-journal
2020-07-21 17:42:51 +01:00
Raúl Kripalani
4e82cf369c
rename journal entries to journal events.
2020-07-21 17:32:01 +01:00
Raúl Kripalani
3bd9d55a15
message pool: write message(s) in journal entries.
2020-07-21 13:10:29 +01:00
Jakub Sztandera
a5334eb2b3
Fix lint warnings
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-20 21:41:05 +02:00
Jakub Sztandera
310fa67f9d
Add gas estimation
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-20 19:48:30 +02:00
Raúl Kripalani
7459ec6bba
add mpool journal events; fix dependency injection.
2020-07-20 16:37:32 +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
faebc4c948
WIP Integrating specs-actors with refactored miner state
2020-07-14 13:45:45 +02:00
Raúl Kripalani
13de81b3b2
introduce the ability to mock time.
2020-07-10 15:51:45 +01:00
Raúl Kripalani
4f9c907248
rename build.{BlockDelay=>BlockDelaySecs}.
...
Since this global is not typed as a time.Duration,
rather as an int, it makes sense to clarify the unit.
2020-06-30 14:26:49 +01:00
Raúl Kripalani
0fddf3e114
make system constants configurable as vars.
...
This configurability is unlocked through the `testground`
build tag, which Project Oni will uses.
Changes in the usage places of these relaxed constants
were required due to the fact that Golang constants are
untyped, but vars aren't.
Read https://blog.golang.org/constants for more info.
2020-06-30 14:18:26 +01:00
Jeromy
33ec4d332b
cache signatures, and dont check them in a lock
2020-05-15 10:56:38 -07:00
Jeromy
1d8c8b9a8e
check gas limits on messages more places
2020-05-12 22:36:43 -07:00
Jeromy
1d5059c281
add tipsetkey to estimate gas api
2020-04-22 15:37:59 -07:00
Jeromy
7e7caa8859
more expressive estimate gas api
2020-04-22 15:28:51 -07:00
Jeromy
2a97045317
add an api for estimating gas prices
2020-04-22 09:37:38 -07:00
Łukasz Magiera
c406b875fa
gofmt, mod tidy
2020-04-21 19:23:49 +02:00
Łukasz Magiera
f11b1bbbeb
mpool: get nonce for correct address
2020-04-18 02:25:43 +02:00
Łukasz Magiera
3b7ae0d6d9
mod tidy, gofmt
2020-04-18 00:02:43 +02:00
Łukasz Magiera
918b759d03
mpool: Fix PushWithNonce for ID addresses
2020-04-16 23:06:31 +02:00
Jakub Sztandera
d88c2f8a43
Add Replace by Fee
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-04-01 22:26:14 +02:00
Łukasz Magiera
f6c260c49f
Merge pull request #1484 from filecoin-project/fix/interop-improvements
...
several fixes and improvements while debugging interop
2020-04-01 17:51:42 +02:00
Jeromy
417d434973
several fixes and improvements while debugging interop
2020-03-31 18:35:23 -07:00
Łukasz Magiera
13f2c21e1d
Get network name from genesis
2020-04-01 01:15:49 +02:00
Jeromy
088d693eea
code review changes
2020-03-25 12:13:09 -07:00
Aayush Rajasekaran
6fda3c877e
Re: #1302 : Refine invalid message filtering
...
- This commit slightly weakens the current invalid message check
- The behaviour is that if you can't add a message to your pool, you *probably* won't broadcast it to your peers
- The exceptions are that you will broadcast a message if you fail to validate it because nonce / balance lookup fails
- This commit also lowers the invalid message log to debug (to lessen the annoyance of several invalid messages coming in, and hopefully to prevent confusion among node operators)
2020-03-18 03:14:18 -04:00
Jakub Sztandera
cc7d25394c
Less noisy mapool add
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-10 21:06:58 +01:00
Travis Person
0fe55f81f6
mpool: add debug logs for future detection
2020-03-10 05:41:24 +00:00
whyrusleeping
d6723935b9
fixup to match spec, move constants to common location
2020-03-03 15:48:25 -08:00
lanzafame
4f2baa8953
conform protocol ids to spec
...
Signed-off-by: lanzafame <adrianlanzafame92@gmail.com>
2020-03-03 11:34:43 +10:00
Łukasz Magiera
0d6cfc879d
Use specs-actors ignatures
2020-02-13 00:52:36 +01:00
Jakub Sztandera
ad9e4db3d6
Reduce sig import locations
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-02-04 15:12:10 +01:00
Jakub Sztandera
5e6ab42cb8
Don't depend on ffi
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-02-04 15:12:04 +01:00
Travis Person
06c99d0e18
Add missing fields to duplicate message error
2020-01-16 17:13:00 +00: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
Łukasz Magiera
a11e8093e5
mpool: Return CID in MpoolPush
2020-01-07 21:10:30 -08:00
hannahhoward
8418464d91
refactor(address): use extracted address library
...
Switch to using extracted address library
2020-01-07 14:53:27 +01:00
whyrusleeping
6e94377469
cache load tipset
2019-12-16 11:22:56 -08:00
Łukasz Magiera
b4cf80f540
mempool: Don't crash if loading local messages fails
2019-12-10 20:42:09 +01:00
Jakub Sztandera
43bc25d04a
Fix edge case
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-10 14:45:15 +01:00
Jakub Sztandera
44d8f4d6d4
Smarter message rebroadcast
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-10 14:13:20 +01:00
Jakub Sztandera
74327ff575
Fix mpool sub not unsubbing
...
Resolves #786
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-08 16:00:45 +01:00
whyrusleeping
74ed6455b0
Improve messagepool reorg checks
2019-12-07 12:42:04 +01:00
whyrusleeping
613a0a05a0
more of that sweet staticcheck goodness
2019-12-04 18:04:09 -08:00
Łukasz Magiera
d79f1c180d
mpool: Make tests pass
2019-12-03 22:09:39 +01:00
Łukasz Magiera
96c04fc0a6
mpool: Make MpoolPending more atomic
2019-12-03 20:33:29 +01:00
whyrusleeping
481cc63181
add a test for the revert messages issue
2019-12-02 14:33:11 -08:00
whyrusleeping
e366db00fe
fix lame deadlock and revert handling
2019-12-02 14:33:11 -08:00
whyrusleeping
68e25b36f1
rename to avoid stuttering
2019-12-02 14:33:11 -08:00
whyrusleeping
b58e7344e8
pull messagepool into separate package
2019-12-02 14:33:11 -08:00