Commit Graph

3462 Commits

Author SHA1 Message Date
Andrew Jackson (Ajax)
7ec9eb0a70 essential fixes for scheduling 2023-11-14 22:38:04 -06:00
Andrew Jackson (Ajax)
8fe8977758 fixes 2023-11-14 19:53:00 -06:00
Andrew Jackson (Ajax)
56498f1fb4 fix circleci and fiximports 2023-11-13 18:09:11 -06:00
Andrew Jackson (Ajax)
3c4e22ff0c gen fix 2023-11-13 17:59:34 -06:00
Łukasz Magiera
f2ef006abd lotus-miner: add config for disabling winning post 2023-11-11 12:19:58 +01:00
Łukasz Magiera
d719db3f2c lpwinning: fix PoSt prover gen 2023-11-11 09:36:33 +01:00
Łukasz Magiera
2a4ce7d358 lpwinning: wire up winningPoSt 2023-11-11 09:36:33 +01:00
Andrew Jackson (Ajax)
06a0a69b2a
Merge pull request #11388 from filecoin-project/feat/lp-migrate2
cli: lotus-shed provider from-miner
2023-11-09 21:08:55 -06:00
Aayush
5b5dd525f5 skip migration cache correctly 2023-11-09 14:14:46 -05:00
Łukasz Magiera
2bb4940992 config codegen 2023-11-09 18:22:08 +01:00
Łukasz Magiera
ad4556e020 lotus miner config to entirely disable WindowPoSt 2023-11-09 18:11:10 +01:00
Andrew Jackson (Ajax)
b0cb4b56d6 lp migrator fixes 2023-11-08 18:01:44 -06:00
Andrew Jackson (Ajax)
23ba7faa84 Merge branch 'release/v1.25.0' into feat/sturdypost 2023-11-08 11:24:17 -06:00
Aayush
65591841f9 skip migration cache correctly 2023-11-08 17:14:02 +01:00
Łukasz Magiera
b243c405b4
Merge pull request #11353 from CIDgravity/improve-sectors-summary-call
feat: sealing: load SectorsSummary from sealing SectorStats instead of calling API each time
2023-11-07 13:22:18 +01:00
Andrew Jackson (Ajax)
848c20d15f Merge branch 'master' into feat/sturdypost 2023-11-06 16:10:57 -06:00
Steven Allen
cff785fa37
fix: eth: correctly encode and simplify native input/output encoding (#11382)
* chore: eth: move & rename input/output encoding functions

These are shared functions, so I'm moving them to the utils library.

* fix: eth: correctly encode and simplify native input/output encoding

When generating eth traces, we encode "native" message inputs/outputs
to "solidity ABI" by formatting the inputs/outputs the same way we do in
FEVM's "handle_native_method". However, we had quite a few bugs with the
implementation:

1. We were right-aligning 64bit values in 256bit words, instead of
left-aligning (as we should given that these values are big-endian).
2. The return-value encoding wasn't correctly handling lengths.

This patch:

1. Fixes those bugs.
2. Deduplicates the logic (we're doing _basically_ the same thing in
both cases).
3. Removes all error paths (these functions can't fail).
2023-11-06 09:41:22 -08:00
Florian RUEN
c0c4e6bf35
fix: add lk.Lock() and move the map copy to avoid miner crash 2023-11-03 15:38:20 +01:00
Florian RUEN
02929dd166
feat: load SectorsSummmary from SectorStats instead of calling API (faster) 2023-11-03 15:38:19 +01:00
Steven Allen
65085d17c0 fix: api: compute gasUsedRatio based on max gas in the tipset (#11354)
We were computing this based on the max block gas, but this is
incorrect. The new value isn't entirely correct either (we should
probably compute an average of the gas used in each block in the
tipset?), but it's good enough.

fixes #10515
2023-11-02 07:57:54 +08:00
Steven Allen
b8f7109988 fix: api: compute the effective gas cost with the correct base-fee (#11357)
fixes #11252
2023-11-02 07:57:40 +08:00
Aayush Rajasekaran
ce0c1d834f feat: chain: light-weight patch to fix calibrationnet (#11363)
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
2023-10-31 18:36:05 -04:00
Aayush Rajasekaran
77b6b7ef10
feat: chain: light-weight patch to fix calibrationnet (#11363)
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
2023-10-31 18:29:09 -04:00
Andrew Jackson (Ajax)
e4f09bc1a4 Merge branch 'feat/wdpost-adder2' into wdpost-can-accept 2023-10-31 17:16:04 -05:00
Łukasz Magiera
adb0fc3259 lotus-provider: Put storage secret in the config 2023-10-31 14:45:38 +01:00
Andrew Jackson (Ajax)
1ff0d61adb LP- Better repo handling 2023-10-30 18:45:09 -05:00
Łukasz Magiera
24fcde40a4 lp config: make default cmd not panic 2023-10-30 17:19:07 +01:00
Phi
7b473f60ae Handle errors from Close() in CheckUDPBufferSize
Added error handling for the Close() method calls in the CheckUDPBufferSize function to satisfy linting rules and improve error logging.
2023-10-30 09:59:59 +00:00
Phi
a6ae497c02 Check UDP-buffer-size
Raise alert if UDP-buffer size is not high enough
2023-10-30 09:36:15 +00:00
Steven Allen
3f00691f26
fix: api: compute gasUsedRatio based on max gas in the tipset (#11354)
We were computing this based on the max block gas, but this is
incorrect. The new value isn't entirely correct either (we should
probably compute an average of the gas used in each block in the
tipset?), but it's good enough.

fixes #10515
2023-10-27 07:37:51 -07:00
Steven Allen
420f33017e
fix: api: compute the effective gas cost with the correct base-fee (#11357)
fixes #11252
2023-10-27 07:37:16 -07:00
Łukasz Magiera
a5a0bd378e lpwindow: make gen 2023-10-25 21:13:56 +02:00
Łukasz Magiera
4fad50ad9a provider: Undo some hacks, move wdpost task to lpwindow pkg 2023-10-25 14:23:25 +02:00
Andrew Jackson (Ajax)
43680400c3 lp runs. todo ds-sectorInfo move & cleanups 2023-10-24 19:26:13 -05:00
Steven Allen
6e22c08c1d
fix: api: return errors on failure to lookup an eth txn receipt (#11329)
All these cases here are actually errors and returning `nil` makes this
hard to debug. We likely returned nil in the past to be "best effort"
but, as far as I can tell, we should only hit these error cases if
something is actually wrong.

part of #11325
2023-10-24 12:13:45 -07:00
Andrew Jackson (Ajax)
5b5ae80e30 renamed api config 2023-10-19 18:19:42 -05:00
Andrew Jackson (Ajax)
2bc4951d79 Merge branch 'release/v1.24.0' into release/v1.25.0 2023-10-17 10:19:51 -05:00
Andrew Jackson (Ajax)
e548b46dbf lotus-provider-in-progress 2023-10-16 10:28:58 -05:00
Aayush
5e76b05b17 Merge branch 'feat/nv21' into asr/merge-feat-nv21 2023-10-16 11:13:33 -04:00
Andrew Jackson (Ajax)
1f1e840e5c Merge branch 'feat/wdpost-adder' into wdpost-can-accept 2023-10-11 17:51:46 -05:00
Aayush Rajasekaran
a7f4976ab1
Merge pull request #11314 from filecoin-project/fix/sector-commitment-comment
fix: docs: Update SectorLifetime to be in line with FIP-0052
2023-10-11 15:50:10 -04:00
Aayush
2a644e2c04 feat: limit PoSted partitions to 3 2023-10-11 12:41:55 -04:00
Phi
db96bc0143 Update comment
Make clear that 1278 days are applicable in nv21 not before.
2023-10-11 16:30:30 +01:00
Phi
ce27d5fcf2 fix: config: update sector lifetime comment
Update SectorLifetime duration comment to be in line with FIP-0052: https://fips.filecoin.io/FIPS/fip-0052.html
2023-10-09 11:17:03 +01:00
Andrew Jackson (Ajax)
598e9b931d Merge branch 'feat/wdpost-adder' into wdpost-can-accept 2023-10-06 11:48:04 -05:00
Łukasz Magiera
1927b26abf fee config: Default MaximizeWindowPoStFeeCap to true 2023-10-03 11:53:26 +02:00
Łukasz Magiera
444e75ef77 feat: mpool/wdpost: Maximize feecap config 2023-10-03 11:32:49 +02:00
Phi
f0fce8f4a5 Remove sentence
Remove sentence about additional computation costs
2023-10-02 13:19:13 +01:00
Andrew Jackson (Ajax)
a9d472a40e lp cfg set existing defaults 2023-09-28 10:47:40 -05:00
Phi
3d8324d0f8 Remove precomputing line
Remove precomputing line
2023-09-27 08:59:40 +01:00
Phi
e7b0fb3de3 Update todo in config
Updates the TODO in the synthetic config.
2023-09-26 08:22:25 +02:00
Andrew Jackson (Ajax)
aae259c426 gen 2023-09-25 14:25:02 -05:00
Steven Allen
c6debaadf0 make gen 2023-09-23 17:54:44 -04:00
Steven Allen
2fa5422581 fix: use VerifyDealForActivation in StateComputeCID
Unfortunately, ComputeDataCommitement was deprecated.
2023-09-23 17:54:39 -04:00
Aayush
04ebd5177c refactor: GetMaxSectorExpirationExtension depends on network version 2023-09-23 14:09:25 -04:00
Andrew Jackson (Ajax)
bcd0faba81 test fix 2023-09-22 18:23:57 -05:00
Andrew Jackson (Ajax)
c99fa24ef4 test fix, review rearrange 2023-09-22 17:53:06 -05:00
Andrew Jackson (Ajax)
2f36f0ec0a bump circleci for flaky test 2023-09-22 16:15:18 -05:00
Andrew Jackson (Ajax)
25c3b1732e Merge branch 'feat/sturdypost' into lotus_provider_config 2023-09-22 11:38:03 -05:00
Łukasz Magiera
a8d693a2c0
Merge pull request #11274 from filecoin-project/fix/update-splitstore-config-comments
fix: config: Update ColdStoreType comments
2023-09-22 15:36:54 +02:00
Phi
e8570bd69c Remove double default
Remove double default
2023-09-22 15:24:55 +02:00
Łukasz Magiera
99990504b5
Merge pull request #11263 from Icarus9913/libp2p/remove-deprecated-method
fix: deps: stop using go-libp2p deprecated peer.ID.Pretty
2023-09-22 13:59:18 +02:00
Andrew Jackson (Ajax)
1fb471ec31 m2s2 2023-09-21 11:00:08 -05:00
Andrew Jackson (Ajax)
a520ee85d6 master-to-sturdy 2023-09-21 10:37:02 -05:00
Andrew Jackson (Ajax)
403c6e23e1 lotusprovider docsgen2 2023-09-20 16:17:51 -05:00
Andrew Jackson (Ajax)
456ead411b docsgen 2023-09-20 16:11:14 -05:00
Shrenuj Bansal
00b3335765 wip 2023-09-20 15:59:58 -04:00
Andrew Jackson (Ajax)
144bc9fcea lint for config pr 2023-09-20 12:58:56 -05:00
Andrew Jackson (Ajax)
a377033d22 config 2023-09-19 22:48:39 -05:00
Phi
8b77839d38 Make gen
Make gen
2023-09-19 13:21:07 +02:00
Phi
e5f32f288d Update ColdStoreType comments
Update comments to say that "discard" is the default mode in SplitStore.
2023-09-19 12:32:41 +02:00
Aayush Rajasekaran
35ceb02c50
Merge pull request #11261 from filecoin-project/eth_filert_flake_debug
eth_filter flake debug
2023-09-18 11:57:12 -04:00
Aayush Rajasekaran
b9c29d6ee5
chore: backport #11262 (#11265)
* fix: networking: avoid dialing when trying to handshake peers

Also, avoid handshaking with peers that don't support the handshake
protocol.

* drop unused imports

---------

Co-authored-by: Steven Allen <steven@stebalien.com>
2023-09-15 10:36:48 -07:00
Icarus9913
2a8ea957fa stop using go-libp2p deprecated peer.ID.Pretty
Signed-off-by: Icarus9913 <icaruswu66@qq.com>
2023-09-12 13:13:34 +08:00
Aayush
89dede32ac drop unused imports 2023-09-11 13:50:55 -04:00
Steven Allen
cfaeb2718f fix: networking: avoid dialing when trying to handshake peers
Also, avoid handshaking with peers that don't support the handshake
protocol.
2023-09-08 14:52:14 -07:00
Andrew Jackson (Ajax)
7ef93448fb eth_filter flake debug 2023-09-08 11:17:51 -05:00
Phi
024dd5e08e Merge branch 'feat/nv21' into feat/implement-SyntheticPoRep 2023-09-08 16:41:39 +02:00
Mikers
5e5a81bf23
add go linter - "unused" (#11235)
* add go linter - "unused"

* use _ to name unused but needed padding variable

* remove unused code

* add queue test to appease unused linter

* remove unused code in test

* remove unused func

* remove unused struct identified by linter

* remove unused variable

* remove unused code

* remove unused file

* remove unused struct

* remove unused function

* remove unused observe peers function in raft

* remove unused declareFaults function

* annotate nolint:unused on needed methods
2023-09-05 12:19:43 -10:00
Shrenuj Bansal
9cc5e84677 wip 2023-08-30 12:40:54 -04:00
Shrenuj Bansal
5562c7cd79 Merge branch 'feat/sturdypost' into feat/wdpost-adder 2023-08-30 12:18:42 -04:00
Shrenuj Bansal
c0bd13eced WIP 2023-08-30 12:11:09 -04:00
Aayush Rajasekaran
d71d647aaf
Merge pull request #11100 from filecoin-project/traceapi
Add new tracing API
2023-08-30 11:34:06 -04:00
Andrew Jackson (Ajax)
5c00f8d66e lotus-provider fixes 2023-08-29 23:16:05 -05:00
Shrenuj Bansal
eacd5bb970 Merge branch 'feat/sturdypost' into feat/wdpost-adder 2023-08-29 14:21:48 -04:00
Shrenuj Bansal
6b95bd24ba WIP: wdpost listener 2023-08-29 12:28:44 -04:00
Łukasz Magiera
a9396624a7
Merge pull request #11215 from filecoin-project/backport/nv21/feat/act-precommv2
Backport: feat: sealing: Switch to calling PreCommitSectorBatch2
2023-08-29 16:06:27 +02:00
Łukasz Magiera
4ee20965fa chore: chain/actors: Use type proxies instead of versioned GST imports 2023-08-29 15:28:16 +02:00
Fridrik Asmundsson
0096d521c3 fix decoding toplevel output in trace_replayBlockTransactions 2023-08-29 12:27:08 +00:00
Łukasz Magiera
ecb6deea09 sealing pipeline: Drop legacy single-pc1 submit path 2023-08-29 13:46:29 +02:00
Łukasz Magiera
d6aed7ba83 pc batch: drop individual precommit processing 2023-08-29 13:46:29 +02:00
Fridrik Asmundsson
13e1b4b3df Added todo to support native actors calling another when created 2023-08-29 10:38:21 +00:00
Rod Vagg
b6fe914748
fix(client): single-root error message 2023-08-29 14:46:39 +10:00
Fridrik Asmundsson
930e9b957c fix lint 2023-08-28 18:47:45 +00:00
Fridrik Asmundsson
ed407689e6 Parse input/output for delegate call + other smaller things 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
029a4a72b8 Address most recent comments 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
10a5480895 Decode output using top level trace 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ee3cdf0e97 Fix use filecoin addr + other small refactor
After changing in prev commit to use to ethereum addresses the
comparison does not make sense against builtin actors. This
fixes that by storing also the filecoin addresses in each trace

Also renamed filecoin related fields to Filecoin prefix.

Also remove requirement call to InvokeContract needed to come
from a evm actor
2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
cf255127a4 Decode eth param/return values and change them to ethbytes type 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
cb5e6e0cd1 The From/To address should be in eth format 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
8d8891a431 Moved tracing types to ethtypes to address circular dependencies 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ef7bcfec06 Do not compute message index as traces should be in message execution order 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
a1b890c8c7 return wrapped errors 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
4068e0710d Do not return interface{} from trace api methods 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ebb54bc381 fix naming lint 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ba1ee60d1b Refactor eth.go 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
7f99d15071 Small refactor and cleanup 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
fd69f8bbd8 Check all errors 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
abeb842d93 Address lint errors 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
392ef1beb7 Handle delegatecall 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
2c902db0e1 Handle more edge cases 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
c1eaa2f864 Translate call input/output into Solidity ABI 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
1b0f54a61b Add new tracing API 2023-08-28 17:48:22 +00:00
Andrew Jackson (Ajax)
1e2a16bd8a Merge branch 'feat/sturdypost' into feat/lotus-provider 2023-08-25 18:18:42 -05:00
Andrew Jackson (Ajax)
ca4282d149 lotus-provider: review comments 2023-08-25 18:17:31 -05:00
Andrew Jackson (Ajax)
535423a1f4 lotus-provider before harmonytask 2023-08-23 18:57:34 -05:00
Aayush
5bfea36a17 Merge branch 'feat/nv21' into asr/merge-nv21 2023-08-23 11:44:59 -04:00
Aayush
3ea3e49bdd wip: 2 more randomness fetching APIs 2023-08-22 12:32:25 -04:00
Shrenuj Bansal
a51e55390a address moar comments 2023-08-22 10:43:50 -04:00
Aayush
034f6cf832 wip: 2 more randomness fetching APIs 2023-08-21 16:32:27 -04:00
Andrew Jackson (Ajax)
cb7231cb8a
Merge pull request #11177 from filecoin-project/sbansal/unseal-background
fix: sealing: Run unsealing in the background for better ux
2023-08-21 11:37:59 -05:00
Shrenuj Bansal
9e69576410 log unseal failures 2023-08-16 17:40:27 -04:00
Shrenuj Bansal
38350b8d8a Run unsealing in the background for better ux 2023-08-16 17:20:39 -04:00
Phi
8b5da86727 feat: introduce local nv21 skeleton
Introduce nv21 skeleton for local testing:

- Use local go-state-types with actor_version_checklist changes: https://github.com/filecoin-project/go-state-types/blob/master/actors_version_checklist.md
- Imports mock v12-actors bundle
- Define upgrade heights
- Generate adapters
- Add upgrade schedule and migration
- Add actorstype to the NewActorRegistry in /chain/consensus/computestate.go
- Add upgrade field to api/types.go/ForkUpgradeParams
- Add upgrade to node/impl/full/state.go
- Add network version to chain/state/statetree.go
- make jen
- make docsgen-cli
2023-08-16 20:01:48 +02:00
Shrenuj Bansal
a249f96341 make gen 2023-08-16 11:13:52 -04:00
Shrenuj Bansal
cdf90b83ed address more comments 2023-08-16 10:57:08 -04:00
Łukasz Magiera
c46aea6a36
Merge pull request #11164 from filecoin-project/go-libp2p-v029
update go-libp2p to v0.29.2
2023-08-16 12:15:52 +02:00
Shrenuj Bansal
a7761fdb05 debug logging for test 2023-08-14 22:00:41 -04:00
Łukasz Magiera
33182967eb
Merge pull request #11142 from filecoin-project/feat/act-precommv2
sealing: Switch to calling PreCommitSectorBatch2
2023-08-14 21:31:24 +02:00
Marten Seemann
2f0fbe26f8 update go-libp2p to v0.29.2 2023-08-14 18:46:28 +07:00
Aayush Rajasekaran
1da18e8058
Merge pull request #10987 from simlecode/feat/add-Eip155ChainID
feat: add Eip155ChainID to StateGetNetworkParams
2023-08-09 20:02:05 -04:00
Shrenuj Bansal
652ee04ce2 working changes 2023-08-08 20:59:21 -04:00
Łukasz Magiera
a4d22f585f sealing pipeline: Drop legacy single-pc1 submit path 2023-08-08 14:43:00 +02:00
Łukasz Magiera
1c73ac69b4 pc batch: drop individual precommit processing 2023-08-08 13:04:21 +02:00
Shrenuj Bansal
864e8219ae WIP: sector index yugabyte impl 2023-08-05 16:15:23 -04:00
Łukasz Magiera
fbac220208 feat: chain node: Move consensus slasher to internal service 2023-08-01 12:06:18 -04:00
Aayush
a413a53be2 feat: refactor slashfilter to return bool indicating fault 2023-08-01 12:05:02 -04:00
Łukasz Magiera
fe7cf0c39a feat: chain node: Move consensus slasher to internal service 2023-08-01 17:34:44 +02:00
simlecode
c3f421a9cd feat: add Eip155ChainID to StateGetNetworkParams 2023-07-28 16:03:59 +08:00
Andrew Jackson (Ajax)
0a57b84898 cleanup: itest removed from harmonydb 2023-07-27 18:42:16 -05:00
Aayush
09b566dde1 fix: daemon: set real beacon schedule when importing chain 2023-07-17 09:36:41 -04:00
Andrew Jackson (Ajax)
d17bfb14f8 feat: miner deps: harmonydb 2023-07-14 18:05:49 -05:00
Łukasz Magiera
50cf19722a Make Synthetic PoRep work 2023-07-13 15:48:20 +02:00
Łukasz Magiera
2f19a5f66d gen, fix build with new state-types 2023-07-13 15:48:19 +02:00
Łukasz Magiera
518c2cdf6e rename synth porep config to a shorter name 2023-07-13 15:48:16 +02:00
Andrew Jackson (Ajax)
7f306a5b02 Synthetic PoRep Impl 2023-07-13 15:47:59 +02:00
Andrew Jackson (Ajax)
08038540e4 Impl synthPoRep 2023-07-13 15:47:59 +02:00
Andrew Jackson (Ajax)
f4fe4cae9c synthetic porep config 2023-07-13 15:47:59 +02:00
Phi
c7b9633160 feat: introduce local nv21 skeleton
Introduce nv21 skeleton for local testing:

- Use local go-state-types with actor_version_checklist changes: https://github.com/filecoin-project/go-state-types/blob/master/actors_version_checklist.md
- Imports mock v12-actors bundle
- Define upgrade heights
- Generate adapters
- Add upgrade schedule and migration
- Add actorstype to the NewActorRegistry in /chain/consensus/computestate.go
- Add upgrade field to api/types.go/ForkUpgradeParams
- Add upgrade to node/impl/full/state.go
- Add network version to chain/state/statetree.go
- make jen
- make docsgen-cli
2023-07-13 15:47:18 +02:00
Shrenuj Bansal
cbbd7dea0c
Merge pull request #11058 from filecoin-project/sbansal/add-prune-metrics
feat: Add a metric to display pruning of the node's peer
2023-07-10 09:45:41 -04:00