{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":738003996,"defaultBranch":"main","name":"cometbft","ownerLogin":"orijtech","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-01-02T07:22:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26156476?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1710872016.0","currentOid":""},"activityList":{"items":[{"before":"7066eb946b845c13900e46128dc35f3d7f078b24","after":"6d22e77ceb3d3c6af7586321d58f720a89bc686d","ref":"refs/heads/libs-BitArray-doesnt-crash-on-zero-bits","pushedAt":"2024-04-09T19:58:53.000Z","pushType":"push","commitsCount":21,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"Merge branch 'main' into libs-BitArray-doesnt-crash-on-zero-bits","shortMessageHtmlLink":"Merge branch 'main' into libs-BitArray-doesnt-crash-on-zero-bits"}},{"before":"b774ec46ca171f07295f887e0c2a27aece3baf74","after":"7066eb946b845c13900e46128dc35f3d7f078b24","ref":"refs/heads/libs-BitArray-doesnt-crash-on-zero-bits","pushedAt":"2024-04-03T03:46:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in the JSON\n\nThis change fixes a bug in which BitArray.UnmarshalJSON hadn't\naccounted for the fact that invoking NewBitArray(<=0) returns nil\nand hence when dereferenced would crash with a runtime nil pointer\ndereference. This bug was found by my security analysis and fuzzing too.\n\nFixes #2658","shortMessageHtmlLink":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in …"}},{"before":"f28cac2f446745227720e3041501f1eb96f5e59e","after":"b774ec46ca171f07295f887e0c2a27aece3baf74","ref":"refs/heads/libs-BitArray-doesnt-crash-on-zero-bits","pushedAt":"2024-03-22T16:09:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"Merge branch 'main' into libs-BitArray-doesnt-crash-on-zero-bits","shortMessageHtmlLink":"Merge branch 'main' into libs-BitArray-doesnt-crash-on-zero-bits"}},{"before":null,"after":"2e68b375f5d5bcb626cffd89586cff09ffab65f5","ref":"refs/heads/types-validate-nil-proposers+BlockID","pushedAt":"2024-03-19T18:13:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(types): check for nil Valset.Proposer.PubKey + valid commit.BlockID to avoid crashes\n\nThis change adds validation to avoid runtime panics for when:\n* ValidatorSet.GetProposer() returns nil or has a nil public key\n* Commit.BlockID is invalid and just causes a crash\n\nall conditions which can be simply checked for upfront and not\nlater on after doing lots of work and cause sudden panics.\n\nFixes #2626\nFixes #2627","shortMessageHtmlLink":"fix(types): check for nil Valset.Proposer.PubKey + valid commit.Block…"}},{"before":"b226979aa5d8471b40bb9df3578523c264497824","after":"f28cac2f446745227720e3041501f1eb96f5e59e","ref":"refs/heads/libs-BitArray-doesnt-crash-on-zero-bits","pushedAt":"2024-03-19T16:50:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in the JSON\n\nThis change fixes a bug in which BitArray.UnmarshalJSON hadn't\naccounted for the fact that invoking NewBitArray(<=0) returns nil\nand hence when dereferenced would crash with a runtime nil pointer\ndereference. This bug was found by my security analysis and fuzzing too.\n\nFixes #2658","shortMessageHtmlLink":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in …"}},{"before":null,"after":"b226979aa5d8471b40bb9df3578523c264497824","ref":"refs/heads/libs-BitArray-doesnt-crash-on-zero-bits","pushedAt":"2024-03-19T16:49:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in the JSON\n\nThis change fixes a bug in which BitArray.UnmarshalJSON hadn't\naccounted for the fact that invoking NewBitArray(<=0) returns nil\nand hence when dereferenced would crash with a runtime nil pointer\ndereference. This bug was found by my security analysis and fuzzing too.\n\nFixes #2658","shortMessageHtmlLink":"fix(bits): prevent BitArray.UnmarshalJSON from crashing on 0 bits in …"}},{"before":"3b4b1c3c3c1b81c846e6a4fc4ed5feab7a0a16d0","after":null,"ref":"refs/heads/privval-reverse-conditional-FilePVLastSignState.CheckHRS","pushedAt":"2024-01-29T10:06:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"}},{"before":"43197807b7e519f9a1ceeb76cf474125cf95a6ce","after":"7854c3e83a99eb3a3363326b89b0b80a0176cda0","ref":"refs/heads/p2p-fix-inefficient-PeerSet.Remove","pushedAt":"2024-01-29T07:58:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(p2p): make PeerSet.Remove more efficient\n\nThis change makes PeerSet.Remove much more efficient simply\nby using more idiomatic Go re-slicing to avoid the prior mechanisms\nof creating fresh peer set lists on just a single remove.\nWhile here also added a remedy for a found bug #2158 due to an\nabstraction that returns a stale slice to its caller in Switch.OnStop.\n\nBenchmark results:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nPeerSetRemoveOne-8 90.5µs ± 4% 95.9µs ±13% ~ (p=0.218 n=10+10)\nPeerSetRemoveMany-8 1.58ms ± 4% 1.50ms ± 1% -4.98% (p=0.000 n=10+8)\n\nname old alloc/op new alloc/op delta\nPeerSetRemoveOne-8 8.48kB ± 0% 7.92kB ± 0% -6.60% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 149kB ± 0% 65kB ± 0% -56.44% (p=0.000 n=10+10)\n\nname old allocs/op new allocs/op delta\nPeerSetRemoveOne-8 85.0 ± 0% 73.0 ± 0% -14.12% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 1.32k ± 0% 1.22k ± 0% -7.51% (p=0.000 n=10+10)\n```\n\nwhich savings become so much more when peers are removed much more frequently\nfor a longer period of time and could mitigate DOS vectors.\n\nFixes #2157\nFixes #2158","shortMessageHtmlLink":"fix(p2p): make PeerSet.Remove more efficient"}},{"before":"58a353fc0f3189e22694f6ad3f40ebac258ae4cc","after":"43197807b7e519f9a1ceeb76cf474125cf95a6ce","ref":"refs/heads/p2p-fix-inefficient-PeerSet.Remove","pushedAt":"2024-01-28T19:12:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(p2p): make PeerSet.Remove more efficient\n\nThis change makes PeerSet.Remove much more efficient simply\nby using more idiomatic Go re-slicing to avoid the prior mechanisms\nof creating fresh peer set lists on just a single remove.\nWhile here also added a remedy for a found bug #2158 due to an\nabstraction that returns a stale slice to its caller in Switch.OnStop.\n\nBenchmark results:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nPeerSetRemoveOne-8 90.5µs ± 4% 95.9µs ±13% ~ (p=0.218 n=10+10)\nPeerSetRemoveMany-8 1.58ms ± 4% 1.50ms ± 1% -4.98% (p=0.000 n=10+8)\n\nname old alloc/op new alloc/op delta\nPeerSetRemoveOne-8 8.48kB ± 0% 7.92kB ± 0% -6.60% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 149kB ± 0% 65kB ± 0% -56.44% (p=0.000 n=10+10)\n\nname old allocs/op new allocs/op delta\nPeerSetRemoveOne-8 85.0 ± 0% 73.0 ± 0% -14.12% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 1.32k ± 0% 1.22k ± 0% -7.51% (p=0.000 n=10+10)\n```\n\nwhich savings become so much more when peers are removed much more frequently\nfor a longer period of time and could mitigate DOS vectors.\n\nFixes #2157\nFixes #2158","shortMessageHtmlLink":"fix(p2p): make PeerSet.Remove more efficient"}},{"before":"0eeb681fb8b62d1b248c3ab3cbc9ad64e91eb8ce","after":"58a353fc0f3189e22694f6ad3f40ebac258ae4cc","ref":"refs/heads/p2p-fix-inefficient-PeerSet.Remove","pushedAt":"2024-01-28T15:49:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(p2p): make PeerSet.Remove more efficient\n\nThis change makes PeerSet.Remove much more efficient simply\nby using more idiomatic Go re-slicing to avoid the prior mechanisms\nof creating fresh peer set lists on just a single remove.\nWhile here also added a remedy for a found bug #2158 due to an\nabstraction that returns a stale slice to its caller in Switch.OnStop.\n\nBenchmark results:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nPeerSetRemoveOne-8 90.5µs ± 4% 95.9µs ±13% ~ (p=0.218 n=10+10)\nPeerSetRemoveMany-8 1.58ms ± 4% 1.50ms ± 1% -4.98% (p=0.000 n=10+8)\n\nname old alloc/op new alloc/op delta\nPeerSetRemoveOne-8 8.48kB ± 0% 7.92kB ± 0% -6.60% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 149kB ± 0% 65kB ± 0% -56.44% (p=0.000 n=10+10)\n\nname old allocs/op new allocs/op delta\nPeerSetRemoveOne-8 85.0 ± 0% 73.0 ± 0% -14.12% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 1.32k ± 0% 1.22k ± 0% -7.51% (p=0.000 n=10+10)\n```\n\nwhich savings become so much more when peers are removed much more frequently\nfor a longer period of time and could mitigate DOS vectors.\n\nFixes #2157\nFixes #2158","shortMessageHtmlLink":"fix(p2p): make PeerSet.Remove more efficient"}},{"before":"44f1de45b3fcdf3ad5d34c4ff54927f962f297c2","after":"0eeb681fb8b62d1b248c3ab3cbc9ad64e91eb8ce","ref":"refs/heads/p2p-fix-inefficient-PeerSet.Remove","pushedAt":"2024-01-28T15:45:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(p2p): make PeerSet.Remove more efficient\n\nThis change makes PeerSet.Remove much more efficient simply\nby using more idiomatic Go re-slicing to avoid the prior mechanisms\nof creating fresh peer set lists on just a single remove.\nWhile here also added a remedy for a found bug #2158 due to an\nabstraction that returns a stale slice to its caller in Switch.OnStop.\n\nBenchmark results:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nPeerSetRemoveOne-8 90.5µs ± 4% 95.9µs ±13% ~ (p=0.218 n=10+10)\nPeerSetRemoveMany-8 1.58ms ± 4% 1.50ms ± 1% -4.98% (p=0.000 n=10+8)\n\nname old alloc/op new alloc/op delta\nPeerSetRemoveOne-8 8.48kB ± 0% 7.92kB ± 0% -6.60% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 149kB ± 0% 65kB ± 0% -56.44% (p=0.000 n=10+10)\n\nname old allocs/op new allocs/op delta\nPeerSetRemoveOne-8 85.0 ± 0% 73.0 ± 0% -14.12% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 1.32k ± 0% 1.22k ± 0% -7.51% (p=0.000 n=10+10)\n```\n\nwhich savings become so much more when peers are removed much more frequently\nfor a longer period of time and could mitigate DOS vectors.\n\nFixes #2157\nFixes #2158","shortMessageHtmlLink":"fix(p2p): make PeerSet.Remove more efficient"}},{"before":null,"after":"44f1de45b3fcdf3ad5d34c4ff54927f962f297c2","ref":"refs/heads/p2p-fix-inefficient-PeerSet.Remove","pushedAt":"2024-01-28T15:41:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"fix(p2p): make PeerSet.Remove more efficient\n\nThis change makes PeerSet.Remove much more efficient simply\nby using more idiomatic Go re-slicing to avoid the prior mechanisms\nof creating fresh peer set lists on just a single remove.\nWhile here also added a remedy for a found bug #2158 due to an\nabstraction that returns a stale slice to its caller in Switch.OnStop.\n\nBenchmark results:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nPeerSetRemoveOne-8 90.5µs ± 4% 95.9µs ±13% ~ (p=0.218 n=10+10)\nPeerSetRemoveMany-8 1.58ms ± 4% 1.50ms ± 1% -4.98% (p=0.000 n=10+8)\n\nname old alloc/op new alloc/op delta\nPeerSetRemoveOne-8 8.48kB ± 0% 7.92kB ± 0% -6.60% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 149kB ± 0% 65kB ± 0% -56.44% (p=0.000 n=10+10)\n\nname old allocs/op new allocs/op delta\nPeerSetRemoveOne-8 85.0 ± 0% 73.0 ± 0% -14.12% (p=0.000 n=10+10)\nPeerSetRemoveMany-8 1.32k ± 0% 1.22k ± 0% -7.51% (p=0.000 n=10+10)\n```\n\nwhich savings become so much more when peers are removed much more frequently\nfor a longer period of time and could mitigate DOS vectors.\n\nFixes #2157\nFixes #2158","shortMessageHtmlLink":"fix(p2p): make PeerSet.Remove more efficient"}},{"before":"6e2264c34dd63131a279c5b2474af455f2f89972","after":"3b4b1c3c3c1b81c846e6a4fc4ed5feab7a0a16d0","ref":"refs/heads/privval-reverse-conditional-FilePVLastSignState.CheckHRS","pushedAt":"2024-01-28T14:03:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"refactor(privval): reverse conditional + more idiomatic Go code with early returns\n\nThis change applies the refactoring method of reverse conditional\nand using early returns for more idiomatic code which makes the code\nmuch more direct and less nested.\n\nFixes #2154","shortMessageHtmlLink":"refactor(privval): reverse conditional + more idiomatic Go code with …"}},{"before":null,"after":"6e2264c34dd63131a279c5b2474af455f2f89972","ref":"refs/heads/privval-reverse-conditional-FilePVLastSignState.CheckHRS","pushedAt":"2024-01-28T13:56:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"refactor(privval): reverse conditional + more idiomatic Go code with early returns\n\nThis change applies the refactoring method of reverse conditional\nand using early returns for more idiomatic code which makes the code\nmuch more direct and less nested.\n\nFixes #2154","shortMessageHtmlLink":"refactor(privval): reverse conditional + more idiomatic Go code with …"}},{"before":"d652a33f09d61cfe248a7e19b44c38dbba56074e","after":"c74dfbd4c9eb897fcb5f2c37188c005d3f7a1874","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-28T09:35:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":"befae090fd2eb30c4ecb903ae807bb1c1f5ce169","after":"d652a33f09d61cfe248a7e19b44c38dbba56074e","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-28T09:33:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":"f520689438918672561e137051d59614fb520457","after":"befae090fd2eb30c4ecb903ae807bb1c1f5ce169","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-28T08:55:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":"e4e625ac57d6524d4761bb8ab7d02f3c6bfd4f5d","after":"f520689438918672561e137051d59614fb520457","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-12T10:23:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":"5ad2fd41d1356e8c5e0ad5065f77d232617999f2","after":"e4e625ac57d6524d4761bb8ab7d02f3c6bfd4f5d","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-10T11:01:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":null,"after":"5ad2fd41d1356e8c5e0ad5065f77d232617999f2","ref":"refs/heads/types-fuzz-ValSetVerifyCommit+ToExtendedVoteSet","pushedAt":"2024-01-10T09:56:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet\n\nThis change adds fuzzers for ValSetVerifyCommit and ToExtendedVoteSet\nwhich is a continuous effort to proactively find and fix issues\nin the code. These fuzzers will be added to oss-fuzz to run\ncontinuously.","shortMessageHtmlLink":"test(types): fuzz ValSetVerifyCommit and ToExtendedVoteSet"}},{"before":"216dc9b869b64ddfc796ce7dee2a8d4d4fc3de6b","after":"7bd6a90a6b4d1f111c6bbec283b91a6410349b13","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-05T06:24:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"57e1b1029beabe909eb9d67711f6a16c4f7d0b34","after":"216dc9b869b64ddfc796ce7dee2a8d4d4fc3de6b","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-03T03:51:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"66d8125d316a8409292139635ad78928af640aec","after":"57e1b1029beabe909eb9d67711f6a16c4f7d0b34","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-03T03:47:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"b31cf06c5cb7517f30818eb71a7ecf545f052c55","after":"66d8125d316a8409292139635ad78928af640aec","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-03T03:41:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"6d2640db89400d056dd62803a77b270ce4a013a2","after":"b31cf06c5cb7517f30818eb71a7ecf545f052c55","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-03T03:34:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"10583a18868f6c633fff106209a2a754d4c29bbc","after":"6d2640db89400d056dd62803a77b270ce4a013a2","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-02T07:26:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":"c0dfc78fd731134435dd354bec8fbae97aafbd6a","after":"10583a18868f6c633fff106209a2a754d4c29bbc","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-02T07:25:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}},{"before":null,"after":"c0dfc78fd731134435dd354bec8fbae97aafbd6a","ref":"refs/heads/crypto-merkle-use-more-efficient-hashing-for-multiple-slices","pushedAt":"2024-01-02T07:23:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"odeke-em","name":"Emmanuel T Odeke","path":"/odeke-em","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4898263?s=80&v=4"},"commit":{"message":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing of multiple byteslices\n\nThis change adds a more efficient API in tmhash with \"SumMany\" whose\njob is to produce the SHA256 sum of multiple byteslices. It is used\ninside crypto/merkle.innerHash which used a naive and inefficient\nway of hashing multiple byteslices. Benchmark results reflect these\nimprovements:\n\n```shell\n$ benchstat before.txt after.txt\nname old time/op new time/op delta\nInnerHash-8 161µs ± 1% 160µs ± 5% ~ (p=0.143 n=10+10)\n\nname old alloc/op new alloc/op delta\nInnerHash-8 69.1kB ± 0% 60.1kB ± 0% -12.98% (p=0.000 n=10+9)\n\nname old allocs/op new allocs/op delta\nInnerHash-8 24.0 ± 0% 23.0 ± 0% -4.17% (p=0.000 n=10+10)\n```\n\nFixes #1881","shortMessageHtmlLink":"perf(crypto/merkle, crypto/tmhash): simplify+optimize SHA256 hashing …"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAELGB-ygA","startCursor":null,"endCursor":null}},"title":"Activity · orijtech/cometbft"}