{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":799210674,"defaultBranch":"master","name":"polkadot-sdk","ownerLogin":"liuchengxu","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-05-11T13:21:08.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8850248?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726754467.0","currentOid":""},"activityList":{"items":[{"before":"f076138d10b072456a2db954c355b6461b9490da","after":"99a052f454be7e35b585874cda32f21546ced955","ref":"refs/heads/more-fast-sync-edge-case-fixes","pushedAt":"2024-09-20T20:45:42.000Z","pushType":"push","commitsCount":51,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Merge branch 'master' of https://github.com/liuchengxu/polkadot-sdk into more-fast-sync-edge-case-fixes","shortMessageHtmlLink":"Merge branch 'master' of https://github.com/liuchengxu/polkadot-sdk i…"}},{"before":"1cff666b5206c28e3116eea7edb36b65135775a1","after":"515fcc952cd52504ab7d3866a83adb9bf0f8e56b","ref":"refs/heads/master","pushedAt":"2024-09-20T20:42:19.000Z","pushType":"push","commitsCount":85,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Avoid unnecessary state reset of `allowed_requests` when no block requests are sent (#5774)\n\nThis PR is cherry-picked from\nhttps://github.com/paritytech/polkadot-sdk/pull/5663 so that I can\nmaintain a smaller polkadot-sdk diff downstream sooner than later.\n\ncc @lexnv @dmitry-markin\n\n---------\n\nCo-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>\nCo-authored-by: Dmitry Markin ","shortMessageHtmlLink":"Avoid unnecessary state reset of allowed_requests when no block req…"}},{"before":"7088a4ddf1241b6fee40fac5b36b8064b7bffb78","after":"7a56221a59cfff170301bbac711ac0c752707391","ref":"refs/heads/fix-allowed_requests-update-incorrectly","pushedAt":"2024-09-20T17:54:02.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"dmitry-markin","name":"Dmitry Markin","path":"/dmitry-markin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6322171?s=80&v=4"},"commit":{"message":"Merge branch 'master' into fix-allowed_requests-update-incorrectly","shortMessageHtmlLink":"Merge branch 'master' into fix-allowed_requests-update-incorrectly"}},{"before":"65d9c4ff139e6670e244c45b34c24a930d29db3a","after":"7088a4ddf1241b6fee40fac5b36b8064b7bffb78","ref":"refs/heads/fix-allowed_requests-update-incorrectly","pushedAt":"2024-09-19T15:05:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Update prdoc/pr_5774.prdoc\n\nCo-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>","shortMessageHtmlLink":"Update prdoc/pr_5774.prdoc"}},{"before":"b6d1217e4678d1c67d38325372017e93daadc36e","after":"65d9c4ff139e6670e244c45b34c24a930d29db3a","ref":"refs/heads/fix-allowed_requests-update-incorrectly","pushedAt":"2024-09-19T14:11:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add prdoc","shortMessageHtmlLink":"Add prdoc"}},{"before":null,"after":"b6d1217e4678d1c67d38325372017e93daadc36e","ref":"refs/heads/fix-allowed_requests-update-incorrectly","pushedAt":"2024-09-19T14:01:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add comment","shortMessageHtmlLink":"Add comment"}},{"before":"917c1538a8177cabe3dac52d9886944a3d471227","after":"1a7c13bf34350d974952001a1d9083184c80e226","ref":"refs/heads/fix-fast-sync-part-2","pushedAt":"2024-09-18T13:13:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Rename `body_exists` to `existing_body` for consistency","shortMessageHtmlLink":"Rename body_exists to existing_body for consistency"}},{"before":"79c5e6f3b88588c273beaba00141483ae63aabca","after":null,"ref":"refs/heads/avoid-updating-block-gap-when-unchanged","pushedAt":"2024-09-17T22:20:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"}},{"before":"6da05cbe89fcad425b627f98f32badd1b84a56ae","after":"917c1538a8177cabe3dac52d9886944a3d471227","ref":"refs/heads/fix-fast-sync-part-2","pushedAt":"2024-09-16T00:21:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"refactor: update `insert_new_gap()` to accept `block_gap`","shortMessageHtmlLink":"refactor: update insert_new_gap() to accept block_gap"}},{"before":"e85c4dcef34ee697e1c57aa2aab1ab22ed06514a","after":"6da05cbe89fcad425b627f98f32badd1b84a56ae","ref":"refs/heads/fix-fast-sync-part-2","pushedAt":"2024-09-13T12:34:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add prdoc","shortMessageHtmlLink":"Add prdoc"}},{"before":"6e3e147a4a085249642f2d581a7c36d990c0ea16","after":"e85c4dcef34ee697e1c57aa2aab1ab22ed06514a","ref":"refs/heads/fix-fast-sync-part-2","pushedAt":"2024-09-13T10:32:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"refactor: extract `insert_new_gap()`","shortMessageHtmlLink":"refactor: extract insert_new_gap()"}},{"before":null,"after":"6e3e147a4a085249642f2d581a7c36d990c0ea16","ref":"refs/heads/fix-fast-sync-part-2","pushedAt":"2024-09-13T10:15:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"refactor: extract `insert_new_gap()`","shortMessageHtmlLink":"refactor: extract insert_new_gap()"}},{"before":"3ce5e4f0124fff8ca0871957bf942b87705dfdcd","after":"fcc6f39b17b51abb71c508c670cc3d1334a063a2","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-10T15:46:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Merge branch 'master' into cli-RpcParams","shortMessageHtmlLink":"Merge branch 'master' into cli-RpcParams"}},{"before":"fbb060f523df6a309862d3be20a695cc01fe9ee1","after":"3ce5e4f0124fff8ca0871957bf942b87705dfdcd","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-10T14:37:05.000Z","pushType":"push","commitsCount":37,"pusher":{"login":"niklasad1","name":"Niklas Adolfsson","path":"/niklasad1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14157425?s=80&v=4"},"commit":{"message":"Merge branch 'master' into cli-RpcParams","shortMessageHtmlLink":"Merge branch 'master' into cli-RpcParams"}},{"before":"03a5d0ce52689b2837577d01d83c99998b04deee","after":"f076138d10b072456a2db954c355b6461b9490da","ref":"refs/heads/more-fast-sync-edge-case-fixes","pushedAt":"2024-09-10T13:45:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Fix fast sync by preventing re-downloading duplicate blocks during gap sync\n\nWhen starting gap sync, the starting point is set to the last finalized block (`finalized_number`),\nand `best_queued_number` is updated to this block as well, see https://github.com/paritytech/polkadot-sdk/blob/9079f36/substrate/client/network/sync/src/strategy/chain_sync.rs#L1396-L1399.\nThis results in a situation where the `best_queued_number` in chain sync could be\nsmaller than `client.info().best_number`. Consequently, when `peer_block_request()` is\ninvoked, blocks between `finalized_number` and `client.info().best_number` are redundantly requested.\n\nWhile re-downloading a few blocks is usually not problematic, it triggers an edge case in gap sync:\nwhen these re-downloaded blocks are imported, gap sync checks for completion by comparing `gap.end`\nwith the `imported_block_number`, see https://github.com/paritytech/polkadot-sdk/blob/9079f36/substrate/client/network/sync/src/strategy/chain_sync.rs#L1844-L1845\nFor example, if the best block is 124845 and the finalized block is 123838, gap sync starts\nat 123838 with the range [1, 124845]. Blocks in the range [124839, 124845] will be re-downloaded.\nOnce block 124845 is imported, gap sync will incorrectly consider the sync as complete, causing\nblock history to fail to download.\n\nThis patch prevents re-downloading duplicate blocks, ensuring that gap sync is not stopped prematurely,\nand block history is downloaded as expected.","shortMessageHtmlLink":"Fix fast sync by preventing re-downloading duplicate blocks during ga…"}},{"before":null,"after":"03a5d0ce52689b2837577d01d83c99998b04deee","ref":"refs/heads/more-fast-sync-edge-case-fixes","pushedAt":"2024-09-10T13:36:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Fix fast sync by preventing re-downloading duplicate blocks during gap sync\n\nWhen starting gap sync, the starting point is set to the last finalized block (`finalized_number`),\nand `best_queued_number` is updated to this block as well, see https://github.com/paritytech/polkadot-sdk/blob/9079f36/substrate/client/network/sync/src/strategy/chain_sync.rs#L1396-L1399.\nThis results in a situation where the `best_queued_number` in chain sync could be\nsmaller than `client.info().best_number`. Consequently, when `peer_block_request()` is\ninvoked, blocks between `finalized_number` and `client.info().best_number` are redundantly requested.\n\nWhile re-downloading a few blocks is usually not problematic, it triggers an edge case in gap sync:\nwhen these re-downloaded blocks are imported, gap sync checks for completion by comparing `gap.end`\nwith the `imported_block_number`, see https://github.com/paritytech/polkadot-sdk/blob/9079f36/substrate/client/network/sync/src/strategy/chain_sync.rs#L1844-L1845\nFor example, if the best block is 124845 and the finalized block is 123838, gap sync starts\nat 123838 with the range [1, 124845]. Blocks in the range [124839, 124845] will be re-downloaded.\nOnce block 124845 is imported, gap sync will incorrectly consider the sync as complete, causing\nblock history to fail to download.\n\nThis patch prevents re-downloading duplicate blocks, ensuring that gap sync is not stopped prematurely,\nand block history is downloaded as expected.","shortMessageHtmlLink":"Fix fast sync by preventing re-downloading duplicate blocks during ga…"}},{"before":"207463e50a6e1013a01076870093d815ef25c1b4","after":"03f6e42b00ca3e6ede927d785d88e16fd455b131","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-10T08:11:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"FMT","shortMessageHtmlLink":"FMT"}},{"before":"6d5cd14dfffcbe7dd1ade7b7b8e2e4889090589a","after":"207463e50a6e1013a01076870093d815ef25c1b4","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-10T07:30:09.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"bkchr","name":"Bastian Köcher","path":"/bkchr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5718007?s=80&v=4"},"commit":{"message":"Merge branch 'master' into fix-state-sync-lost","shortMessageHtmlLink":"Merge branch 'master' into fix-state-sync-lost"}},{"before":"4f03545d6318c2ac60f3699f89bf672040ded8c1","after":"6d5cd14dfffcbe7dd1ade7b7b8e2e4889090589a","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-09T09:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Update substrate/client/network/sync/src/strategy/chain_sync.rs\n\nCo-authored-by: Dmitry Markin ","shortMessageHtmlLink":"Update substrate/client/network/sync/src/strategy/chain_sync.rs"}},{"before":"18287054068a87600352adb55b43f6e6f3307a0b","after":"fbb060f523df6a309862d3be20a695cc01fe9ee1","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-08T20:19:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bkchr","name":"Bastian Köcher","path":"/bkchr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5718007?s=80&v=4"},"commit":{"message":"Apply suggestions from code review","shortMessageHtmlLink":"Apply suggestions from code review"}},{"before":"c6d8b808421a51d68836f7da17030001ff2dd4d1","after":"fb94c25ab68b40b10a552d2bce8580f5805da24f","ref":"refs/heads/fast-sync-block-history-download","pushedAt":"2024-09-08T05:10:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Fix more edge cases about fast sync","shortMessageHtmlLink":"Fix more edge cases about fast sync"}},{"before":"3672c3425c05c4729e61e6ce9910c60f69126f4b","after":"4f03545d6318c2ac60f3699f89bf672040ded8c1","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-07T15:33:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add prdoc","shortMessageHtmlLink":"Add prdoc"}},{"before":"ddfcf2d396ab20fb41d96809f3df437a2ecd925a","after":"3672c3425c05c4729e61e6ce9910c60f69126f4b","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-07T15:06:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add `pending_state_sync_attempt`\n\nThere is an edge case where the finalized block notification\nis received, but the conditions required to initiate the state sync are\nnot fully met. In such cases, state sync would fail to start as expected\nand remain stalled.\n\nThis fixes it by storing the pending attempt and trying to start it\nlater.","shortMessageHtmlLink":"Add pending_state_sync_attempt"}},{"before":"cbaa95b6e49177539d28760d316dd473522ffbcc","after":"ddfcf2d396ab20fb41d96809f3df437a2ecd925a","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-07T14:58:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add `pending_state_sync_attempt`\n\nThere is an edge case where the finalized block notification\nis received, but the conditions required to initiate the state sync are\nnot fully met. In such cases, state sync would fail to start as expected\nand remain stalled.\n\nThis fixes it by storing the pending attempt and trying to start it\nlater.","shortMessageHtmlLink":"Add pending_state_sync_attempt"}},{"before":null,"after":"cbaa95b6e49177539d28760d316dd473522ffbcc","ref":"refs/heads/fix-state-sync-lost","pushedAt":"2024-09-07T14:23:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add `pending_state_sync_attempt`\n\nThere is an edge case where the finalized block notification\nis received, but the conditions required to initiate the state sync are\nnot fully met. In such cases, state sync would fail to start as expected\nand remain stalled.\n\nThis fixes it by storing the pending attempt and trying to start it\nlater.","shortMessageHtmlLink":"Add pending_state_sync_attempt"}},{"before":"3a15713ce8a665f6a66e3a9632fa948bcb6478ca","after":"3bd5acf8bf986d590cf20d2a707a3b03eb38a322","ref":"refs/heads/fix-fast-sync-part-1","pushedAt":"2024-09-06T07:42:30.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"bkchr","name":"Bastian Köcher","path":"/bkchr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5718007?s=80&v=4"},"commit":{"message":"Merge branch 'master' into fix-fast-sync-part-1","shortMessageHtmlLink":"Merge branch 'master' into fix-fast-sync-part-1"}},{"before":"ba3814a8bea717e77628da690fcb3d1b6adadc2a","after":"18287054068a87600352adb55b43f6e6f3307a0b","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-05T10:51:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Fix RpcParams update","shortMessageHtmlLink":"Fix RpcParams update"}},{"before":"6e889fd4308b83a3089685eee74a7343b0997c2e","after":"ba3814a8bea717e77628da690fcb3d1b6adadc2a","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-05T09:21:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Add prdoc","shortMessageHtmlLink":"Add prdoc"}},{"before":"19086bdecd254fd8c41e7fa5a30473c939d45ee7","after":"6e889fd4308b83a3089685eee74a7343b0997c2e","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-05T09:05:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Introduce `RpcParams` in sc-cli","shortMessageHtmlLink":"Introduce RpcParams in sc-cli"}},{"before":null,"after":"19086bdecd254fd8c41e7fa5a30473c939d45ee7","ref":"refs/heads/cli-RpcParams","pushedAt":"2024-09-05T08:12:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liuchengxu","name":"Liu-Cheng Xu","path":"/liuchengxu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8850248?s=80&v=4"},"commit":{"message":"Introduce `RpcParams` in sc-cli","shortMessageHtmlLink":"Introduce RpcParams in sc-cli"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQyMDo0NTo0Mi4wMDAwMDBazwAAAAS8W4jE","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQyMDo0NTo0Mi4wMDAwMDBazwAAAAS8W4jE","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNVQwODoxMjoxNC4wMDAwMDBazwAAAAStj3KG"}},"title":"Activity · liuchengxu/polkadot-sdk"}