Commit Graph

339 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 4e8e1784bc
Merge pull request #3662 from jtraglia/per-ext-blob
EIP-7594: Use FIELD_ELEMENTS_PER_EXT_BLOB in NUMBER_OF_COLUMNS
2024-04-10 01:03:11 +09:00
Justin Traglia 3dcf9ebe54 Use FIELD_ELEMENTS_PER_EXT_BLOB in NUMBER_OF_COLUMNS 2024-04-09 08:44:30 -05:00
Hsiao-Wei Wang 94a0b6c581
Merge branch 'dev' into pr3653 2024-04-09 12:55:56 +09:00
Hsiao-Wei Wang ab8815ba10
Merge branch 'dev' into init-electra 2024-04-09 12:26:07 +09:00
Hsiao-Wei Wang 1db1c54323
add comment 2024-04-09 10:33:48 +08:00
Alex Stokes 3cf3e21504
Update beacon-chain.md 2024-04-08 16:28:17 -06:00
Alex Stokes 2ed284da22
format comment in EIP-7251 spec 2024-04-08 08:19:29 -06:00
Alex Stokes dd2721f3c6
Merge pull request #3657 from ralexstokes/eip-7251-spec-fixes
Various spec fixes for EIP-7251
2024-04-08 08:09:51 -06:00
Mikhail Kalinin 64da0da132
Fix has_sufficient_effective_balance computation 2024-04-07 18:15:01 +06:00
Alex Stokes 8cf2fd50f6
add EIP-7251 `initialize_beacon_state_from_eth1` function 2024-04-06 17:18:15 -06:00
Alex Stokes 61168e6124
spec bugfix: incorrect `process_epoch` definition 2024-04-06 17:18:15 -06:00
Alex Stokes b5d7bd0a8a
bugfix: voluntary exit processing in EIP-7251 2024-04-06 17:18:15 -06:00
Alex Stokes a80a777589
add missing extended types for EIP-7251 2024-04-06 17:18:15 -06:00
Alex Stokes 982a983072
EIP-7251: format/lint fixes/docs, add validator guide 2024-04-06 17:18:12 -06:00
Alex Stokes b18bbd8c61
Merge pull request #3636 from mkalinin/eip-7251
EIP-7251: misc changes
2024-04-06 10:22:45 -06:00
NC 6ad0c07c78 Remove extra ` queue_excess_active_balance` call 2024-04-06 22:53:04 +08:00
Alex Stokes e4068b5391
Merge EIP-7549 into Electra 2024-04-05 13:56:57 -06:00
Hsiao-Wei Wang 55c81e7fa1
Merge EIP7002 into Electra 2024-04-05 11:36:49 -06:00
Hsiao-Wei Wang d2c69fe3cf
Rename EIP6110 to Electra 2024-04-05 10:53:42 -06:00
Mikhail Kalinin ace9db9aa9
Set FULL_EXIT_REQUEST_AMOUNT to 0 2024-04-05 15:35:06 +03:00
Hsiao-Wei Wang 806ed66769
Merge branch 'dev' into init-electra 2024-04-05 07:03:29 +09:00
Hsiao-Wei Wang 6cfa8f713e
Merge pull request #3629 from StefanBratanov/eip_6110_rename_function
EIP-6110 rename `get_eth1_deposit_count` function
2024-04-05 06:02:20 +08:00
Hsiao-Wei Wang cd91c04066
Merge branch 'dev' into init-electra 2024-04-04 22:49:53 +09:00
Hsiao-Wei Wang 8728561da3
Merge branch 'dev' into peer-das 2024-04-04 22:23:02 +09:00
Mikhail Kalinin 4f8fb6f716
Update specs/_features/eip7251/beacon-chain.md
Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
2024-04-04 14:49:25 +03:00
Mikhail Kalinin 881768c9d5
Replace MAX_EB with MIN_AB 2024-04-03 17:45:48 +03:00
Hsiao-Wei Wang 025ebed9c8
Merge pull request #3640 from ethereum/eip7549-tests
EIP-7549: Enable EIP-7549 on CI
2024-04-03 20:57:05 +08:00
Paul Harris 9b291ab0a1 fix toc link 2024-04-02 16:11:59 +10:00
Paul Harris 4606ab43e5 [EIP-7251] rename PartialWithdrawal field 2024-04-02 15:43:28 +10:00
Hsiao-Wei Wang ce591f98c8
Enable EIP7549 CI 2024-04-01 10:43:38 +09:00
Hsiao-Wei Wang cf3c4eca8c
Fix conflicts with #3631 2024-04-01 10:37:49 +09:00
Hsiao-Wei Wang eec5503d4f
Fix tests and specs 2024-03-31 16:35:24 +09:00
Mark Mackey 52e9552bbd Fix bug in get_active_balance() 2024-03-29 11:59:16 -06:00
Mikhail Kalinin 221f273e14 Fix lint 2024-03-29 22:35:12 +06:00
Mikhail Kalinin 7bbecfb762 Revert "Replace MIN_ACTIVATION_BALANCE with MAX_EFFECTIVE_BALANCE"
This reverts commit 6f5cc4baf5.
2024-03-29 15:27:12 +06:00
Mikhail Kalinin d004391fb1 Merge branch 'dev' into eip-7251 2024-03-29 15:25:07 +06:00
Hsiao-Wei Wang e926d2e791
Merge pull request #3618 from dapplion/eip-7251
Add EIP-7251 spec: Increase MAX_EFFECTIVE_BALANCE
2024-03-28 14:13:26 +08:00
Mikhail Kalinin 534bcfc116 Use source.effective_balance for consolidaiton churn 2024-03-28 11:49:44 +06:00
Mikhail Kalinin 915f90e13e Strictly check withdrawal address upon consolidation 2024-03-27 18:05:05 +06:00
Mikhail Kalinin 517f741f29 Abort voluntary exit if validator has pending partial withdrawals 2024-03-27 17:57:54 +06:00
Mikhail Kalinin 46638d31ba Remove unused method 2024-03-27 17:42:10 +06:00
Mikhail Kalinin 31142b0ba1 Require sufficient EB to emit partial withdrawal 2024-03-27 17:41:00 +06:00
Mikhail Kalinin 6f5cc4baf5 Replace MIN_ACTIVATION_BALANCE with MAX_EFFECTIVE_BALANCE 2024-03-27 17:35:27 +06:00
Mikhail Kalinin cda10d059b Refactor EL withdraw request processing 2024-03-27 16:51:38 +06:00
Mikhail Kalinin 73ede3a804 Fix pending_balance_to_withdraw == 0 check when full exit 2024-03-27 15:44:38 +06:00
Mikhail Kalinin 5e32d442a2 Fix the sweep by enabling 0x02 creds 2024-03-27 12:42:37 +06:00
Mikhail Kalinin 06104f24e3 Fix is_partially_withdrawable_validator 2024-03-27 01:43:15 +09:00
dapplion e6aaa9d44d Fix lint 2024-03-27 01:35:36 +09:00
dapplion 23ad85e8bf Allow to switch to compounding validator on deposit 2024-03-27 00:31:09 +09:00
Hsiao-Wei Wang 30be96bac3
Merge pull request #3632 from parithosh/add-electra-config
Add electra fork config
2024-03-26 21:48:28 +08:00
Hsiao-Wei Wang 88a35a1de1
update the spec files too 2024-03-26 13:18:40 +08:00
fradamt 4775641f05 fix broken pending deposits tests and typo 2024-03-25 15:26:50 +01:00
Mikhail Kalinin bb8ba9c045
Apply suggestions from code review
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
2024-03-25 19:20:58 +06:00
fradamt 97966d825a small fixes 2024-03-25 12:23:19 +01:00
Mikhail Kalinin 702ac28858 eip7549: flatten aggregate_bits 2024-03-25 16:43:19 +06:00
dapplion 4e7c82ccc6 Remove is_aggregator changes 2024-03-23 00:04:29 +09:00
dapplion 08732e69c6 fix typo 2024-03-22 15:28:44 +09:00
dapplion 72c4f04261 @ensi321 review 2024-03-22 14:24:34 +09:00
dapplion 84a5ae919c rename to partial_withdrawals_count 2024-03-22 14:24:34 +09:00
dapplion 6d9ebe15bb set_compounding_withdrawal_credentials 2024-03-22 14:24:34 +09:00
dapplion ebdb513ec8 queue_excess_active_balance 2024-03-22 14:04:03 +09:00
Lion - dapplion 2014edbbaa
Update validator.md 2024-03-22 13:25:03 +09:00
Stefan Bratanov 4f61308147 EIP-6110 rename `get_eth1_deposit_count` function 2024-03-21 13:13:30 +00:00
Mikhail Kalinin 45f98d6a67 Set MIN_SLASHING_PENALTY_QUOTIENT_EIP7251=4096 2024-03-21 17:32:03 +06:00
Mehdi AOUADI ec633e8871 clarify network aggregation vs onchain aggregation 2024-03-20 16:31:46 +01:00
Mikhail Kalinin 8873d02360 Fix linter 2024-03-20 16:52:05 +06:00
Mikhail Kalinin d48b5e0665 Update whistleblower reward for eip7251 2024-03-20 16:10:30 +06:00
Mikhail Kalinin a127bbf0c6
Merge branch 'dev' into eip-7251 2024-03-20 14:46:43 +06:00
Mikhail Kalinin be79aab782 Fix toc 2024-03-20 14:42:21 +06:00
Mikhail Kalinin cdbc2b760c Fix linter 2024-03-20 13:58:18 +06:00
Mikhail Kalinin 98f38c7f07 Introduce MAX_PARTIAL_WITHDRAWALS_PER_PAYLOAD 2024-03-20 13:53:42 +06:00
Mark Mackey f6359f9afb Fix Bug in process_pending_balance_deposits 2024-03-19 13:31:55 -05:00
Mark Mackey cf70df25d9 Address Comments and Cleanup Spec 2024-03-19 11:12:33 -05:00
Hsiao-Wei Wang 5d80b1954a
Merge pull request #3559 from dapplion/attestation-index
EIP-7549: Move committee index outside Attestation
2024-03-14 23:54:20 +08:00
dapplion fc65a6f864 Fix CI 2024-03-13 00:23:47 +08:00
George Kadianakis 4b6b07b73e PeerDAS: Use FIELD_ELEMENTS_PER_EXT_BLOB in def of PolynomialCoeff 2024-03-12 15:07:42 +02:00
dapplion 5f78d2b436 apply suggestions 2024-03-11 11:10:41 +08:00
George Kadianakis c71fb00c8e PeerDAS: Check for degree overflow in multiply_polynomialcoeff() 2024-03-08 18:04:55 +02:00
dapplion c5af391ad4 Add validator doc 2024-03-08 17:02:40 +08:00
dapplion 668e447c55 Add EIP-7251 spec
Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
2024-03-08 12:37:35 +08:00
Hsiao-Wei Wang 43dbf8cef5
Fix ToC and apply @mehdi-aouadi's suggestion 2024-03-06 23:28:07 +08:00
Hsiao-Wei Wang 03c23c6fb1
make it executable for basic linter checks & fix errors 2024-03-06 23:24:21 +08:00
Hsiao-Wei Wang ec9bbfa2ea
Merge EIP7002 into Electra 2024-03-06 14:23:23 +08:00
Hsiao-Wei Wang 6ffd27bd60
Rename EIP6110 to Electra 2024-03-06 13:38:49 +08:00
dapplion 38f269ca12 Update spec with @mkalinin suggestions 2024-03-05 20:58:05 +08:00
dapplion accee2b8be Merge remote-tracking branch 'upstream/dev' into attestation-index 2024-03-05 17:19:49 +08:00
Hsiao-Wei Wang cebf78a83e
Apply PR feedback 2024-02-27 22:42:32 +09:00
Hsiao-Wei Wang 1acb1ff24f
minor arrange 2024-02-20 22:23:23 +08:00
Hsiao-Wei Wang bb33f9082c
Change List length of `DataColumn` from `MAX_BLOBS_PER_BLOCK` to `MAX_BLOB_COMMITMENTS_PER_BLOCK` 2024-02-20 22:06:09 +08:00
Hsiao-Wei Wang 8150f76e1c
Apply @cskiraly's suggestion 2024-02-20 22:02:10 +08:00
Hsiao-Wei Wang 90afb238ed
Update specs/_features/eip7594/polynomial-commitments-sampling.md 2024-02-14 20:51:50 +08:00
George Kadianakis 385b0f35ac
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-06 13:10:31 +02:00
George Kadianakis f1dd735784
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-06 13:10:24 +02:00
George Kadianakis 4b1106b39c
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2024-02-05 16:59:08 +02:00
George Kadianakis 1e41a6bc69 New FIELD_ELEMENTS_PER_EXT_BLOB: number of cells in an extended blob 2024-02-05 16:57:29 +02:00
George Kadianakis e3b83d5450 Add defensive asserts in recover_polynomial() 2024-02-05 16:56:27 +02:00
Hsiao-Wei Wang e7c0d5ff3c
Update specs/_features/eip7594/das-core.md
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2024-02-02 16:27:56 +08:00
Hsiao-Wei Wang 91dbbb365c
Implement `compute_extended_matrix` 2024-02-02 02:26:28 +08:00
Hsiao-Wei Wang c47d5f3578
Add `recover_matrix` and remove unused `FlatExtendedMatrix` type 2024-02-02 01:45:02 +08:00
Hsiao-Wei Wang 428c166283
Apply suggestions from code review
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
2024-02-01 21:17:42 +08:00
Hsiao-Wei Wang d60580bb52
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-01 18:09:37 +08:00
Hsiao-Wei Wang 87e9702ab0
Fix `DataColumnSidecarsByRoot` 2024-01-31 22:30:52 +08:00
Hsiao-Wei Wang d23452d02b
Deprecate `blob_sidecar_{subnet_id}` 2024-01-31 22:30:46 +08:00
Hsiao-Wei Wang 547460cd84
Apply PR feedback 2024-01-31 22:30:35 +08:00
George Kadianakis 212c1fe624 Small improvements on construct_vanishing_polynomial() 2024-01-31 14:04:23 +02:00
George Kadianakis 4d01d50437 Initial docs added to recover_shifted_data() and recover_original_data() 2024-01-31 14:04:23 +02:00
George Kadianakis be5e5c5a75 Add helpers: recover_shifted_data() and recover_original_data() 2024-01-31 14:04:23 +02:00
George Kadianakis 8b3ac46a2d Add helper method: construct_vanishing_polynomial() 2024-01-31 13:48:20 +02:00
Hsiao-Wei Wang 170dae5609
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
2024-01-29 17:34:47 +08:00
Hsiao-Wei Wang 7aab57703e
Merge branch 'dev' into peer-das 2024-01-29 17:29:20 +08:00
Hsiao-Wei Wang b2a4657da5
Merge branch 'peer-das-req-subnet-count' into peer-das 2024-01-29 17:23:33 +08:00
Hsiao-Wei Wang edeef070d8
toc 2024-01-28 22:47:49 +08:00
George Kadianakis ae3ef6f330
Merge pull request #3579 from asn-d6/peerdas_public_method_bytes
peerDAS: Public methods must accept raw bytes
2024-01-26 17:36:54 +02:00
Hsiao-Wei Wang 56e6a98b9c
`verify_data_column_sidecar_kzg_proof` -> `verify_data_column_sidecar_kzg_proofs` 2024-01-20 17:24:57 +08:00
Hsiao-Wei Wang 4477cc6952
Fix column computation 2024-01-20 14:43:35 +08:00
Hsiao-Wei Wang 55db86127d
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-01-20 14:20:27 +08:00
Hsiao-Wei Wang 65be5b0556
Make `CUSTODY_REQUIREMENT` unit be subnets; move some depended helpers to `das-core.md` 2024-01-20 00:51:28 +08:00
Hsiao-Wei Wang a72ece8348
Apply suggestions from code review
Co-authored-by: g11tech <develop@g11tech.io>
2024-01-19 22:37:02 +08:00
Hsiao-Wei Wang 9553d5490a
fix typo 2024-01-19 22:30:53 +08:00
Hsiao-Wei Wang 665e6faff7
Add `RowIndex`, `ColumnIndex` custom types in crypto doc 2024-01-19 19:14:03 +08:00
George Kadianakis 2000a4f307 Improve test_verify_cell_proof_batch() 2024-01-17 17:20:36 +02:00
George Kadianakis 66798602dd Minor fixes based on review 2024-01-17 14:18:03 +02:00
George Kadianakis 87f2ad2681 Public methods: int -> uint64 2024-01-16 16:58:14 +02:00
Hsiao-Wei Wang 96e41bca30
Optimization: reduce `len()` call 2024-01-16 16:51:05 +08:00
George Kadianakis a4331e7c63 Public methods must accept raw bytes 2024-01-15 18:38:18 +02:00
George Kadianakis b4d418d8ce Remove some trailing whitespace 2024-01-15 17:34:28 +02:00
Hsiao-Wei Wang 504b4f9036
Migrating to latest crypto APIs 2024-01-15 17:12:47 +08:00
Hsiao-Wei Wang 93dddd15f2
wip
wip

Add `TARGET_NUMBER_OF_PEERS`

Add networking spec draft

fix

simplification

Rename `DoYouHave` to `GetCustodyStatus`

Add DataLineSidecar design

Apply suggestions from code review

Co-authored-by: dankrad <mail@dankradfeist.de>
Co-authored-by: danny <dannyjryan@gmail.com>

Revamp after reviews and discussion

Remove `CustodyStatus`

minor fix

Change`DataColumn` to `List[DataCell, MAX_BLOBS_PER_BLOCK]`

Move folder

Replace `DataColumnByRootAndIndex` with `DataColumnSidecarByRoot` message. Add extended data description

Remove `DataRow`

Apply suggestions from @jacobkaufmann code review

Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>

Represent matrix in `BLSFieldElement` form

Add `assert time >= store.time` to `on_tick`

Revert the spec. Only handle it in tests

Remove extra tick

cleanup leftover

Add randomized block cases

Specify RPC byRoot blocks-sidecars elegibility

fix typo

Update specs/phase0/p2p-interface.md

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>

Update specs/deneb/p2p-interface.md

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>

add failed on_block condition

rephrase

Update specs/phase0/p2p-interface.md

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>

apply suggestion

Update specs/deneb/p2p-interface.md

Co-authored-by: danny <dannyjryan@gmail.com>

Update specs/deneb/p2p-interface.md

Co-authored-by: danny <dannyjryan@gmail.com>

remove the last consider

from on_block to state_transition

simplify and add a new rule

Update specs/phase0/p2p-interface.md

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>

Update specs/deneb/p2p-interface.md

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>

Update specs/deneb/p2p-interface.md

Co-authored-by: danny <dannyjryan@gmail.com>

remove gossip failure rules

Apply suggestions from code review

bump version to v1.4.0-beta.5

Move `blob_sidecar_{subnet_id}` to `Blob subnets` section

Misc minor fix

Add linter support

Add column subnet validation. Split `verify_column_sidecar` into two functions

Fix `get_data_column_sidecars` by using `compute_samples_and_proofs`

Apply suggestions from code review

Co-authored-by: danny <dannyjryan@gmail.com>

Do not assign row custody

Apply suggestions from code review

Co-authored-by: danny <dannyjryan@gmail.com>

Revamp reconstruction section

Use depth as the primary preset for inclusion proof. Fix `get_data_column_sidecars` and add tests for merkle proof

Change `SAMPLES_PER_SLOT` to 8 and add tests (requirement TBD)

Apply PR feedback from @ppopth and @jtraglia

Fix `get_data_column_sidecars`

Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>

Apply suggestions from code review

Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>

Apply suggestions from code review

Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>

Fix `get_data_column_sidecars` and `get_custody_lines`

Apply suggestions from code review

Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>

Enhance tests

fix typo

Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>

Remove `epoch` from `get_custody_lines`

fix

fix
2024-01-15 17:12:43 +08:00
Hsiao-Wei Wang b7d9ea9a75
Rename `peerdas` to `eip7594` 2024-01-14 00:13:08 +08:00
Dankrad Feist 4cc1e14a17
Forgot factor of 2 for roots_of_unity_extended 2024-01-12 12:39:08 +00:00
Dankrad Feist 9a851d93c4
Linter 2024-01-11 21:58:24 +00:00
Dankrad Feist 7ec0a2531c
Doctoc 2024-01-11 21:11:57 +00:00
Dankrad Feist c2522ac467
Correct type definition for PolynomialCoeff 2024-01-11 21:05:51 +00:00
Dankrad Feist b55ab46909
Correct type info for verify_kzg_proof_multi_impl 2024-01-11 20:57:16 +00:00
Dankrad Feist fddbd6b76c
Remove constants in favour of using compute_roots_of_unity 2024-01-11 15:42:10 +00:00
Dankrad Feist d21d99f8d8
Add constant for multi cell verification challenge 2024-01-10 19:13:33 +00:00
George Kadianakis a58c86832a Randomize the test_recover_polynomial() 2024-01-09 16:05:00 +02:00
Hsiao-Wei Wang db89e2981a
Clean up Deneb specs. Add some type casting for using fft function 2024-01-09 01:37:24 +08:00
Hsiao-Wei Wang 9a0727000c
Rename `recover_cells` to `recover_polynomial` and fix function signature. Add basic test case. 2024-01-08 23:18:51 +08:00
Hsiao-Wei Wang 03583b1b47
Fix fft helper and add basic test 2024-01-05 20:31:09 +08:00
Hsiao-Wei Wang 7f8858b2ac
Add `PeerDAS` feature 2024-01-05 18:43:37 +08:00
Hsiao-Wei Wang c58c4a71b2
Merge branch 'dev' into polynomial-commitments-sampling 2024-01-05 18:07:53 +08:00
dapplion e8e00f332a move attestation index outside signed message 2023-12-05 14:16:07 +02:00
Dankrad Feist 94ecce76ee
Add polynomial commitments for sampling 2023-12-04 01:12:07 +00:00
Hsiao-Wei Wang d74932bec9
Merge branch 'dev' into pr3442 2023-10-16 17:22:31 +08:00
Lion - dapplion 8acb254511
Use add_validator_to_registry in whisk (#3486) 2023-10-10 15:09:21 +03:00
joethechicken 28e3c807e2
Update validator.md (#3509) 2023-09-20 12:53:50 +01:00
dapplion 4eca8e4292 Add CRS files 2023-09-12 10:23:31 +02:00
Lion - dapplion eef61448a9
Whisk: don't mutate candidates during cooldown (#3483) 2023-08-20 14:46:22 +03:00
Lion - dapplion 0b751fc259
Whisk move non-preset values to config (#3482) 2023-08-20 14:42:12 +03:00