Agnish Ghosh
7d04142e4a
simplify usage of get custody columns
2024-09-09 01:58:21 +05:30
Agnish Ghosh
cf0cf815b6
rework on subnet calculation
2024-09-03 01:03:15 +05:30
Agnish Ghosh
8c7d18ec51
rework reconstruction conditions
2024-09-02 17:23:31 +05:30
Agnish Ghosh
3aa85100f9
move lookupCscFromPeer to Eth2Network, add reqColumns check in data column sidecar range request
2024-09-02 16:45:10 +05:30
Agnish Ghosh
e81ce6cf20
reconstruct and broadcast before validator duties
2024-09-02 13:40:15 +05:30
Agnish Ghosh
077b59249d
enable logging for root and range requests on successful responses
2024-09-02 13:37:07 +05:30
Agnish Ghosh
84da290669
apply column subnet filtering only in Deneb message handlers
2024-08-28 20:38:19 +05:30
Agnish Ghosh
6796b19883
subscribe to all subnets in deneb message handlers
2024-08-28 19:49:12 +05:30
Agnish Ghosh
07d1a26e59
include data columns in addBlock that care about custody
2024-08-28 18:53:28 +05:30
Agnish Ghosh
66cb3ff54e
only persist data columns after block validity
2024-08-28 18:03:21 +05:30
Agnish Ghosh
b573caccc7
no verify kzg during addBlock
2024-08-28 14:29:19 +05:30
Agnish Ghosh
66bf20e7f0
logging of subscription of topics
2024-08-28 13:42:32 +05:30
Agnish Ghosh
547abaacf7
have getLowSubnets accept only BitArrays
2024-08-27 22:17:50 +05:30
Agnish Ghosh
c42d54144a
stick to newSeqOfCap
2024-08-27 14:33:37 +05:30
Agnish Ghosh
b0710806da
added more logging
2024-08-27 14:28:38 +05:30
Agnish Ghosh
cafbeef543
more logging for clarity
2024-08-27 13:01:29 +05:30
Agnish Ghosh
ef6901f0a9
enable more logging
2024-08-27 12:13:12 +05:30
Agnish Ghosh
a26258a6db
echo out column, kzg proof and commitment length to debug
2024-08-27 11:59:00 +05:30
Agnish Ghosh
b9a3aa8277
logging in block processor
2024-08-27 02:51:58 +05:30
Agnish Ghosh
fa5f47c468
bug fix
2024-08-27 01:43:35 +05:30
Agnish Ghosh
93b043f88a
changed data column extraction logic during block proposals
2024-08-27 01:06:54 +05:30
Agnish Ghosh
e9c7a758a0
change get data column sidecar logic in proposer to alpha 4
2024-08-27 00:08:05 +05:30
Agnish Ghosh
4730a4b246
enable blob length clarity for more clarity over the bug
2024-08-26 21:47:26 +05:30
Agnish Ghosh
6c6f33a925
investigate potential disparity between das workers length and extracted data columns length
2024-08-26 21:08:39 +05:30
Agnish Ghosh
9048b2c3f6
revert make data column ref
2024-08-26 14:02:33 +05:30
Agnish Ghosh
23355dc049
bug fix in enqueueBlock for data column verification
2024-08-26 13:59:46 +05:30
Agnish Ghosh
d860373044
enable logging columns in enqueueBlock
2024-08-26 13:57:27 +05:30
Agnish Ghosh
993067c841
enable column logging in storeBlock
2024-08-26 13:55:06 +05:30
Agnish Ghosh
879a04d66a
prevent exact data column logging
2024-08-26 13:02:19 +05:30
Agnish Ghosh
3e0992e0be
enabled logging of subnet ids, and data column indices to prevent mismatch
2024-08-26 12:55:17 +05:30
Agnish Ghosh
0f28477295
added debug to subnet ids
2024-08-26 12:19:13 +05:30
Agnish Ghosh
7d5139c44c
trailing fixes
2024-08-24 20:22:14 +05:30
Agnish Ghosh
6a2ba50c19
enable logging of columns, conditionally subscribe to only topics that i custody for
2024-08-24 19:56:52 +05:30
Agnish Ghosh
da735abd35
patched in pr #6505 , for devnet readiness
2024-08-24 18:50:19 +05:30
Agnish Ghosh
5c3b360b2d
add condition for when >= deneb
2024-08-24 18:21:00 +05:30
Agnish Ghosh
e9586fe879
enable data column kzg proof verification in storeBlock
2024-08-24 17:23:10 +05:30
Agnish Ghosh
237dc3adfb
subscribe to only those gossips that return via get_custody_column_subnet
2024-08-24 16:41:38 +05:30
Agnish Ghosh
c2962b65c9
turned CscCount to uint8 according to the latest EF spec
2024-08-24 16:23:27 +05:30
Agnish Ghosh
e87871e2cb
save work
2024-08-23 15:56:36 +05:30
Agnish Ghosh
ee9889ca91
disable blobs for syncing because of fake deneb fork
2024-08-23 12:31:54 +05:30
Agnish Ghosh
de7cbd8ca4
reduce gossip wait time for data columns
2024-08-23 11:46:06 +05:30
Agnish Ghosh
bf60839e67
increase waiting time for data column root request
2024-08-23 02:59:45 +05:30
Agnish Ghosh
b4ba4bd7d1
lookup csc fix
2024-08-22 20:09:43 +05:30
Agnish Ghosh
6127bd6ed2
make all csc uint64
2024-08-22 18:34:26 +05:30
Agnish Ghosh
fd1ae50830
revert to initially subscribing to all subnets
2024-08-22 16:04:15 +05:30
Agnish Ghosh
46c72d8cbe
fix: initial subscription condition
2024-08-22 15:23:37 +05:30
Agnish Ghosh
2805ffe242
update constants
2024-08-22 14:56:44 +05:30
Agnish Ghosh
3f56281351
fixed lookup csc from peer
2024-08-22 13:52:41 +05:30
Agnish Ghosh
e163aa08c0
enable filtering of peers during data column root request
2024-08-21 18:23:05 +05:30
Agnish Ghosh
5b8abc5f1b
slight fix
2024-08-20 12:53:23 +05:30
Agnish Ghosh
d9e019e2e2
sidecar verification disable at block processing
2024-08-20 12:52:29 +05:30
Agnish Ghosh
fcdd7ee492
enable data column verification in block processor, other general fixes
2024-08-20 12:19:54 +05:30
Agnish Ghosh
70029545ea
added support for customisable custody subnet count on boot, from bn startup flags
2024-08-20 03:58:27 +05:30
Agnish Ghosh
f142dcd36f
make reconstruct and broadcast right after performing validator duties
2024-08-19 21:33:40 +05:30
Agnish Ghosh
0034fea1d6
reduce outgoing root requests
2024-08-19 20:42:58 +05:30
Agnish Ghosh
2444b3190e
init flag for csc, reduce debug messages
2024-08-19 20:08:01 +05:30
Agnish Ghosh
e5da0681b3
get data column sidecar cell and proof variant
2024-08-19 19:24:59 +05:30
Agnish Ghosh
61033ed99b
fix: recover cells and proofs
2024-08-19 18:50:20 +05:30
Agnish Ghosh
f71354b307
experimentally disable verifying data column sidecar before storing block
2024-08-19 13:52:47 +05:30
Agnish Ghosh
635eebbed1
fix response time
2024-08-19 13:17:33 +05:30
Agnish Ghosh
287bf72fbb
simplify data column reconstruct and broadcast logic
2024-08-19 12:04:05 +05:30
Agnish Ghosh
9ed7a193cd
disable rman for blobs
2024-08-19 02:58:50 +05:30
Agnish Ghosh
80b3e70673
slight fix
2024-08-19 01:30:34 +05:30
Agnish Ghosh
15a302cea2
fixes related to reconstruction
2024-08-19 01:23:37 +05:30
Agnish Ghosh
831089825c
activate data column verification before storing backfill block
2024-08-18 23:07:33 +05:30
Agnish Ghosh
7e7c14989e
bump up data column gossip wait time
2024-08-18 22:23:33 +05:30
Agnish Ghosh
8bb1145b43
populate dataColumnSidecarByRange with remote custody columns
2024-08-18 21:42:10 +05:30
Agnish Ghosh
032f544d65
revert constants until all cl agree
2024-08-18 14:17:33 +05:30
Agnish Ghosh
8eaa903c43
bump devnet constants
2024-08-18 13:41:32 +05:30
Agnish Ghosh
75e1bb616b
handling reconstruction condition internally
2024-08-18 13:35:16 +05:30
Agnish Ghosh
e7610ece97
ignore peers with low csc
2024-08-18 13:10:21 +05:30
Agnish Ghosh
f5354eb46d
bump parallel requests for data columns upto 64 for supernode
2024-08-18 12:17:25 +05:30
Agnish Ghosh
04fd58efbf
disable valid csc set experimentally
2024-08-18 04:11:39 +05:30
Agnish Ghosh
121a3687b8
disable blob quarantine checks
2024-08-18 02:10:51 +05:30
Agnish Ghosh
7c39d79e7e
remove metadata v3 call from handleStatus
2024-08-18 01:06:05 +05:30
Agnish Ghosh
7c33d3f0f4
prevent blob proposal in pd devnet
2024-08-17 23:42:31 +05:30
Agnish Ghosh
cd5532c078
add filtering to peer pool and protocol, remove filtering from SyncManager level
2024-08-17 20:51:36 +05:30
Agnish Ghosh
f3f61cbbff
conditionally reconstruct and broadcast only when supernode
2024-08-16 01:03:53 +05:30
Agnish Ghosh
cc21a2a630
fix: enr bitfield logic for custody subnet count
2024-08-14 16:29:28 +05:30
Agnish Ghosh
1ebba1fac4
add: metadata-v3 for custody subnet count ( #6486 )
...
* init: add metadatav3, save progress
* fix import issues
* fix spec version
* fix: metadata_v2 to return altair.MetaData
* update metata function backward compatible now
2024-08-12 21:27:37 +05:30
Agnish Ghosh
9be615dff9
add: data column reconstruction and broadcast ( #6481 )
...
* save commit, decouples reconstruction and broadcasting
* save progress
* add: reconstruction event loop, previous reconstruction related cleanups
2024-08-08 17:44:55 +05:30
Agnish Ghosh
b32205de7c
upstream peerdas alpha3 related spec changes + fix upstream related issues ( #6468 )
...
* reworked some of the das core specs, pr'd to check whether whether the conflicting type issue is centric to my machine or not
* bumped nim-blscurve to 9c6e80c6109133c0af3025654f5a8820282cff05, same as unstable
* bumped nim-eth2-scenarios, nim-nat-traversal at par with unstable, added more pathches, made peerdas devnet branch backward compatible, peerdas passing new ssz tests as per alpha3, disabled electra fixture tests, as branch hasn't been rebased for a while
* refactor test fixture files
* rm: serializeDataColumn
* refactor: took data columns extracted from blobs during block proposal to the heap
* disable blob broadcast in pd devnet
* fix addBlock in message router
* fix: data column iterator
* added debug checkpoints to check CI
* refactor if else conditions
* add: updated das core specs to alpha 3, and unit tests pass
2024-08-05 19:27:39 +05:30
Agnish Ghosh
20e6b189e8
resovle merge conflicts
2024-07-29 19:02:52 +05:30
Agnish Ghosh
329fc21eab
add: condition for being able to selfReconstruct
2024-07-29 19:00:43 +05:30
Agnish Ghosh
e80bd36f76
add: verify data column kzg proof during storeBlock, added serializeDataColumn for better logs
2024-07-26 14:19:44 +05:30
Agnish Ghosh
2e9750ba76
add: get_extended_sample_count for lossy sampler and it's unit test
2024-07-25 18:56:10 +05:30
Agnish Ghosh
874488843a
add: hypergeom cdf
2024-07-25 17:58:29 +05:30
Agnish Ghosh
7faec9b7a3
nits
2024-07-23 16:42:36 +05:30
Agnish Ghosh
c6513122b9
fix reviewed code
2024-07-23 12:38:16 +05:30
Agnish Ghosh
b001499281
add: valid custody peer set to RequestManager
2024-07-23 12:36:42 +05:30
Agnish Ghosh
d2c7208492
Eth2Node not needed in sync man
2024-07-22 19:07:51 +05:30
Agnish Ghosh
5265eeb6ea
refactor: sync manager to range request only valid peers if not supernode
2024-07-22 19:04:04 +05:30
Agnish Ghosh
fa5b15436c
add: logic constructing valid set of peers
2024-07-19 13:58:26 +05:30
Agnish Ghosh
e034f30b5e
add: subscribeAllSubnets feature
2024-07-15 13:50:41 +05:30
Agnish Ghosh
b33900bd35
added enr struct
2024-07-15 13:11:09 +05:30
Agnish Ghosh
cf40d7faae
cleanup for debugs, complete
2024-07-08 11:39:50 +05:30
Agnish Ghosh
5eb854bfcd
checkpoint 2 cleanup
2024-07-07 19:48:56 +05:30
Agnish Ghosh
aaba448bc9
convert to List add
2024-07-07 15:59:27 +05:30
Agnish Ghosh
0bffdd0dca
change checkpoints
2024-07-07 05:02:58 +05:30
Agnish Ghosh
7a891f13d6
rework on cell and proof
2024-07-07 04:35:06 +05:30
Agnish Ghosh
c14b59264c
add: checkpoints for debug support
2024-07-07 03:01:32 +05:30
Agnish Ghosh
e5237d19a3
cell and proof extraction
2024-07-07 02:06:13 +05:30
Agnish Ghosh
abf58928cf
handle empty blobs
2024-07-07 00:43:24 +05:30
Agnish Ghosh
755c24d6aa
fix: blob len 0 case
2024-07-06 21:54:29 +05:30
Agnish Ghosh
7b9c68b19d
oops
2024-07-06 13:55:33 +05:30
Agnish Ghosh
74ee8bb74d
refactor cells and proofs logic + fix edge cases
2024-07-06 13:24:51 +05:30
Agnish Ghosh
85db9ca99c
regressive fix
2024-07-06 00:33:15 +05:30
Agnish Ghosh
1729bdcf57
reduce parallel requests
2024-07-06 00:30:18 +05:30
Agnish Ghosh
adc717c3d0
change return type for get dc
2024-07-06 00:28:55 +05:30
Agnish Ghosh
7101f93ff4
gindex issue fix
2024-07-05 23:03:37 +05:30
Agnish Ghosh
a92eda56d0
prevent pulling const values from deneb preset
2024-07-05 17:16:20 +05:30
Agnish Ghosh
778ea9f094
fix build proof in get dc
2024-07-05 16:15:38 +05:30
Agnish Ghosh
086d3f1fdc
fix: get dc sidecar
2024-07-05 15:56:03 +05:30
Agnish Ghosh
fab427d65f
enable dc in gossip and message router
2024-07-05 14:34:51 +05:30
Agnish Ghosh
318d656942
fix: gindex
2024-07-05 14:26:42 +05:30
Agnish Ghosh
14afc82a1d
gindex fix
2024-07-05 00:05:37 +05:30
Agnish Ghosh
eb46f4c486
fix kzg inclusion proof logic
2024-07-04 23:51:38 +05:30
Agnish Ghosh
6cdc6bfa32
debug: verify data column kzg proofs via kurtosis
2024-07-04 20:24:11 +05:30
Agnish Ghosh
93c3525955
increase ops cost
2024-07-04 19:23:24 +05:30
Agnish Ghosh
24b30a9cec
test kurtosis
2024-07-04 19:20:53 +05:30
Agnish Ghosh
fe183e7465
change timings
2024-07-04 19:14:16 +05:30
Agnish Ghosh
41b35b9799
fix: get data column fixes
2024-07-04 16:49:55 +05:30
Agnish Ghosh
13029d952e
fix: get data column
2024-07-04 14:45:23 +05:30
Agnish Ghosh
b927ddd65a
fix: get_data_column_sidecars
2024-07-04 13:55:51 +05:30
Agnish Ghosh
3bea5742f2
reduce data column response cost
2024-07-04 13:03:48 +05:30
Agnish Ghosh
a755dbaaa9
inclusion proof depth
2024-07-04 11:51:54 +05:30
Agnish Ghosh
c6662bd914
reenable blobs in block proposal
2024-07-04 11:46:40 +05:30
Agnish Ghosh
1a857603b2
fix: cell and proof aggregator
2024-07-04 00:08:11 +05:30
Agnish Ghosh
d49b1a1d47
fix: ckzg function change
2024-07-03 23:51:41 +05:30
Agnish Ghosh
706373909f
fix: get_data_column_sidecars
2024-07-03 23:45:20 +05:30
Agnish Ghosh
887a44a82f
revert gossip val
2024-07-03 21:59:54 +05:30
Agnish Ghosh
53f7175cd8
minor fix
2024-07-03 21:54:40 +05:30
Agnish Ghosh
9f42196c75
exp disable of some gossip conditions
2024-07-03 21:51:59 +05:30
Agnish Ghosh
152d276d78
added reconstruction logic
2024-07-03 21:50:52 +05:30
Agnish Ghosh
d292e94560
sync queue
2024-07-02 22:37:09 +05:30
Agnish Ghosh
ad64b22485
shortLog for dc
2024-07-02 22:26:31 +05:30
Agnish Ghosh
8f9f6544d9
intentionally increase custody requirement
2024-07-02 21:41:46 +05:30
Agnish Ghosh
0e710da37b
update timings
2024-07-02 21:27:50 +05:30
Agnish Ghosh
d0722cd465
update constants
2024-07-02 20:33:09 +05:30
Agnish Ghosh
d8e1beff45
debug 4
2024-07-02 19:56:41 +05:30
Agnish Ghosh
8d2c4893d8
debug3
2024-07-02 19:28:23 +05:30
Agnish Ghosh
77cc2ef358
debug2
2024-07-02 18:35:58 +05:30
Agnish Ghosh
75c3e0b6d3
debug
2024-07-02 18:05:39 +05:30
Agnish Ghosh
2f7a3d0ff2
reenable checkpoints to debug exception
2024-07-02 17:15:08 +05:30
Agnish Ghosh
67fe8aca0b
disable blob activity (exp), improve gossip validation
2024-07-02 14:36:44 +05:30
Agnish Ghosh
9e6cad4105
bit more disabling for kurtosis
2024-07-02 04:51:58 +05:30
Agnish Ghosh
a8e2c3e9a2
exp: disable some gossip conditions
2024-07-02 04:45:23 +05:30
Agnish Ghosh
0e02eb4ce7
fix test_sync_manager
2024-07-02 04:01:37 +05:30
Agnish Ghosh
9325423a6b
strangely disable this line makes it go away :)
2024-07-02 03:15:25 +05:30
Agnish Ghosh
3b1f5b48dd
weird fix
2024-07-02 03:09:49 +05:30
Agnish Ghosh
8e28654a24
exp: build failing, checking if failing on other machines with these changes
2024-07-02 00:14:58 +05:30
Agnish Ghosh
8ac4cc9152
add: data column grouping conditions for range request
2024-07-01 17:42:29 +05:30
Agnish Ghosh
26ac58716b
request man for data columns
2024-07-01 15:00:18 +05:30
Agnish Ghosh
510d988933
disable subnet gossip condition, fixed inclusion proof
2024-06-30 12:16:17 +05:30
Agnish Ghosh
c8d957a495
add: experimental checkpoints on gossip validation to localize failing conditions
2024-06-29 14:26:52 +05:30
Agnish Ghosh
742669052a
dc quarantine activation, keeping blobs compatible
2024-06-29 14:07:09 +05:30
Agnish Ghosh
ca3bd3eeee
experimental: disable scoring for data columns
2024-06-28 18:04:46 +05:30
Agnish Ghosh
0e01d2fb15
experimental disable for inclusion proofs
2024-06-28 18:01:14 +05:30
Agnish Ghosh
27b0705e0d
verify kzg disable
2024-06-28 15:29:57 +05:30
Agnish Ghosh
5bf1e021a7
initiate data column quarantine
2024-06-28 14:53:08 +05:30
Agnish Ghosh
3db92f8b26
add: data column reconstruction logic
2024-06-27 19:31:04 +05:30
Agnish Ghosh
34a2478113
add: blob recovery logic
2024-06-26 16:05:58 +05:30
Agnish Ghosh
0b4cf1017b
rm: unused code in data column getter
2024-06-26 12:48:02 +05:30
Agnish Ghosh
18e3ba2a39
fix: get_data_column_sidecar
2024-06-26 12:26:37 +05:30
Agnish Ghosh
87bc91febe
fix: message router
2024-06-26 02:38:04 +05:30
Agnish Ghosh
81b55faee2
add: fetch subnetCount for super node when subscribeAllSubnets flag passed
2024-06-26 02:22:03 +05:30
Agnish Ghosh
aa390e9ada
rm: message router logic for data column, need to move it
2024-06-26 02:04:06 +05:30
Agnish Ghosh
325bdfd4a2
support for enqueueing whichever is activated blob/data_column
2024-06-25 18:08:00 +05:30
Agnish Ghosh
07d33b3abd
add dataColumns to db during forward syncing
2024-06-24 21:28:23 +05:30
Agnish Ghosh
791d2fb0d1
add: forward and backward syncing for data columns, broadcasting data columns created from blobs, added dc support to sync_queue
2024-06-24 17:32:06 +05:30
Agnish Ghosh
e2afc583cb
fix: reviews, pass1
2024-06-21 14:51:54 +05:30
Agnish Ghosh
f0cae305d6
add: pruneDataColumns at the end of slot
2024-06-19 20:42:31 +05:30
Agnish Ghosh
51f189ef53
add: getMissingDataColumns, requestManagerDataColumnLoop
2024-06-19 03:46:03 +05:30
Agnish Ghosh
46d07b140d
add: data column support in sync_protocol, sync_manager, request_manager, fix: gossipValidation rules
2024-06-18 19:01:56 +05:30
Agnish Ghosh
8e49f88067
update URLs
2024-06-17 23:58:52 +05:30
Agnish Ghosh
ebe9b3b4f8
rm: TODO comment, revisiting later
2024-06-15 10:29:43 +05:30
Agnish Ghosh
5934400106
add: req/res rpc handlers
2024-06-15 01:12:32 +05:30
Agnish Ghosh
986a2bdcdc
save work push, build failing
2024-06-15 00:23:47 +05:30
Agnish Ghosh
02e5430468
init: add req/res domain for peerdas
2024-06-14 18:30:16 +05:30
Agnish Ghosh
7d13a808dc
added another unit test, disabling test in CI for now, because changes in spec
2024-06-13 20:15:00 +05:30
Agnish Ghosh
96b3e95f8e
fix: suggested fixes
2024-06-13 16:48:28 +05:30
Agnish Ghosh
2615514909
add: testing init for peerdas eip
2024-06-13 16:19:15 +05:30
Agnish Ghosh
d8acc16918
rename: KzgCell --> Cell
2024-06-11 15:12:09 +05:30
Agnish Ghosh
282b716ed2
add: test for ssz consensus objects
2024-06-09 11:04:42 +05:30
Agnish Ghosh
c0ade0c005
added test_fixture_networking for peerdas
2024-06-07 13:10:28 +05:30
Agnish Ghosh
9be2e4da9a
experimental disabling of upstream
2024-06-03 12:06:07 +05:30
Agnish Ghosh
b4810fabeb
fix
2024-06-02 14:49:38 +05:30
Agnish Ghosh
c35b5f1b4b
disable more
2024-06-02 10:52:13 +05:30
Agnish Ghosh
caf5557d8b
oops
2024-06-02 10:47:28 +05:30
Agnish Ghosh
578a10693f
conditional disabling
2024-06-02 10:46:10 +05:30
Agnish Ghosh
ca19e12136
experimental chenges
2024-06-02 10:39:45 +05:30
Agnish Ghosh
538ce0a805
fix: added global ctx verification in computeCellsAndProofs and recoverAllCells
2024-05-31 13:15:03 +05:30
Agnish Ghosh
a268ad2c72
fix:reduced blank lines
2024-05-30 03:53:24 +05:30
Agnish Ghosh
80387f1306
fix: code styles
2024-05-30 03:51:32 +05:30
Agnish Ghosh
983522fe84
fix copyright year, and push raises
2024-05-29 14:12:01 +05:30
Agnish Ghosh
26519f68a0
feat: added kzg specs to gossip validation rules, fixed peerdas from C API
2024-05-29 14:02:56 +05:30
Agnish Ghosh
4c390323d3
rebase/add: rebased kzgpeerdas to wip-peerdas, no conflicts with unstable
2024-05-28 13:59:31 +05:30
Agnish Ghosh
eb0e40a5f0
added dataColumnSidecar on deneb fork
2024-05-27 18:15:41 +05:30
Agnish Ghosh
aa2ce79770
fixed upto electra
2024-05-27 18:10:00 +05:30
Agnish Ghosh
905f3b8170
rebased on top of unstable
2024-05-27 18:06:58 +05:30