Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize merkledb hashing #2886

Merged
merged 4 commits into from Mar 29, 2024
Merged

Optimize merkledb hashing #2886

merged 4 commits into from Mar 29, 2024

Conversation

StephenButtolph
Copy link
Contributor

@StephenButtolph StephenButtolph commented Mar 29, 2024

Why this should be merged

Before:

Benchmark_CalculateID/empty_node-12         	 5420020	       219.5 ns/op	     144 B/op	       1 allocs/op
Benchmark_CalculateID/has_value-12          	 5191927	       233.1 ns/op	     144 B/op	       1 allocs/op
Benchmark_CalculateID/1_child-12            	 3997491	       297.8 ns/op	     177 B/op	       2 allocs/op
Benchmark_CalculateID/2_children-12         	 3156843	       379.3 ns/op	     210 B/op	       2 allocs/op
Benchmark_CalculateID/16_children-12        	  815900	      1515   ns/op	     720 B/op	       2 allocs/op

After:

Benchmark_CalculateID/empty_node-12         	11578461	       101.8 ns/op	       0 B/op	       0 allocs/op
Benchmark_CalculateID/has_value-12          	10477825	       113.2 ns/op	       0 B/op	       0 allocs/op
Benchmark_CalculateID/1_child-12            	 7845493	       155.4 ns/op	       0 B/op	       0 allocs/op
Benchmark_CalculateID/2_children-12         	 5576605	       215.0 ns/op	       0 B/op	       0 allocs/op
Benchmark_CalculateID/16_children-12        	 1000000	      1009   ns/op	       0 B/op	       0 allocs/op

How this works

Allocs currently happen in 2 places.

  1. For the bytes.Buffer
  2. For the maps.Keys
  • By writing directly into the sha256 writer, we can avoid allocating the bytes.Buffer.
  • By allocating a slice large enough for the biggest supported branch factor, we can avoid allocating the key slice on the heap (it is placed on the stack).

How this was tested

  • Added benchmark
  • CI

@patrick-ogrady
Copy link
Contributor

patrick-ogrady commented Mar 29, 2024

On my benchmarks, I found this improved e2e performance by ~10-20%.

Comment on lines +236 to +311
func TestHashNode(t *testing.T) {
tests := []struct {
name string
n *node
expectedHash string
}{
{
name: "empty node",
n: newNode(Key{}),
expectedHash: "rbhtxoQ1DqWHvb6w66BZdVyjmPAneZUSwQq9uKj594qvFSdav",
},
{
name: "has value",
n: func() *node {
n := newNode(Key{})
n.setValue(maybe.Some([]byte("value1")))
return n
}(),
expectedHash: "2vx2xueNdWoH2uB4e8hbMU5jirtZkZ1c3ePCWDhXYaFRHpCbnQ",
},
{
name: "has key",
n: newNode(ToKey([]byte{0, 1, 2, 3, 4, 5, 6, 7})),
expectedHash: "2vA8ggXajhFEcgiF8zHTXgo8T2ALBFgffp1xfn48JEni1Uj5uK",
},
{
name: "1 child",
n: func() *node {
n := newNode(Key{})
childNode := newNode(ToKey([]byte{255}))
childNode.setValue(maybe.Some([]byte("value1")))
n.addChildWithID(childNode, 4, hashNode(childNode))
return n
}(),
expectedHash: "YfJRufqUKBv9ez6xZx6ogpnfDnw9fDsyebhYDaoaH57D3vRu3",
},
{
name: "2 children",
n: func() *node {
n := newNode(Key{})

childNode1 := newNode(ToKey([]byte{255}))
childNode1.setValue(maybe.Some([]byte("value1")))

childNode2 := newNode(ToKey([]byte{237}))
childNode2.setValue(maybe.Some([]byte("value2")))

n.addChildWithID(childNode1, 4, hashNode(childNode1))
n.addChildWithID(childNode2, 4, hashNode(childNode2))
return n
}(),
expectedHash: "YVmbx5MZtSKuYhzvHnCqGrswQcxmozAkv7xE1vTA2EiGpWUkv",
},
{
name: "16 children",
n: func() *node {
n := newNode(Key{})

for i := byte(0); i < 16; i++ {
childNode := newNode(ToKey([]byte{i << 4}))
childNode.setValue(maybe.Some([]byte("some value")))

n.addChildWithID(childNode, 4, hashNode(childNode))
}
return n
}(),
expectedHash: "5YiFLL7QV3f441See9uWePi3wVKsx9fgvX5VPhU8PRxtLqhwY",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
hash := hashNode(test.n)
require.Equal(t, test.expectedHash, hash.String())
})
}
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested this against current master with:

func TestHashNode(t *testing.T) {
	tests := []struct {
		name         string
		n            *node
		expectedHash string
	}{
		{
			name:         "empty node",
			n:            newNode(Key{}),
			expectedHash: "rbhtxoQ1DqWHvb6w66BZdVyjmPAneZUSwQq9uKj594qvFSdav",
		},
		{
			name: "has value",
			n: func() *node {
				n := newNode(Key{})
				n.setValue(maybe.Some([]byte("value1")))
				return n
			}(),
			expectedHash: "2vx2xueNdWoH2uB4e8hbMU5jirtZkZ1c3ePCWDhXYaFRHpCbnQ",
		},
		{
			name:         "has key",
			n:            newNode(ToKey([]byte{0, 1, 2, 3, 4, 5, 6, 7})),
			expectedHash: "2vA8ggXajhFEcgiF8zHTXgo8T2ALBFgffp1xfn48JEni1Uj5uK",
		},
		{
			name: "1 child",
			n: func() *node {
				n := newNode(Key{})
				childNode := newNode(ToKey([]byte{255}))
				childNode.setValue(maybe.Some([]byte("value1")))
				n.addChildWithID(childNode, 4, childNode.calculateID(&mockMetrics{}))
				return n
			}(),
			expectedHash: "YfJRufqUKBv9ez6xZx6ogpnfDnw9fDsyebhYDaoaH57D3vRu3",
		},
		{
			name: "2 children",
			n: func() *node {
				n := newNode(Key{})

				childNode1 := newNode(ToKey([]byte{255}))
				childNode1.setValue(maybe.Some([]byte("value1")))

				childNode2 := newNode(ToKey([]byte{237}))
				childNode2.setValue(maybe.Some([]byte("value2")))

				n.addChildWithID(childNode1, 4, childNode1.calculateID(&mockMetrics{}))
				n.addChildWithID(childNode2, 4, childNode2.calculateID(&mockMetrics{}))
				return n
			}(),
			expectedHash: "YVmbx5MZtSKuYhzvHnCqGrswQcxmozAkv7xE1vTA2EiGpWUkv",
		},
		{
			name: "16 children",
			n: func() *node {
				n := newNode(Key{})

				for i := byte(0); i < 16; i++ {
					childNode := newNode(ToKey([]byte{i << 4}))
					childNode.setValue(maybe.Some([]byte("some value")))

					n.addChildWithID(childNode, 4, childNode.calculateID(&mockMetrics{}))
				}
				return n
			}(),
			expectedHash: "5YiFLL7QV3f441See9uWePi3wVKsx9fgvX5VPhU8PRxtLqhwY",
		},
	}
	for _, test := range tests {
		t.Run(test.name, func(t *testing.T) {
			hash := test.n.calculateID(&mockMetrics{})
			require.Equal(t, test.expectedHash, hash.String())
		})
	}
}

Which seems to produce the same results as before.

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
hash := hashNode(test.n)
require.Equal(t, test.expectedHash, hash.String())
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I used strings here because the error text is much more readable in case of a failure.

Comment on lines -32 to -35
estimatedKeyLen = 64
estimatedValueLen = 64
// Child index, child ID
hashValuesChildLen = minVarIntLen + ids.IDLen
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 this gets to remove these heuristics

Comment on lines 70 to 74
// Returns and caches the ID of this node.
func (n *node) calculateID(metrics merkleMetrics) ids.ID {
metrics.HashCalculated()
bytes := encodeHashValues(n)
return hashing.ComputeHash256Array(bytes)
return hashNode(n)
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit torn on the usefulness of this function.

@StephenButtolph StephenButtolph marked this pull request as ready for review March 29, 2024 19:54
@StephenButtolph StephenButtolph added this to the v1.11.4 milestone Mar 29, 2024
x/merkledb/codec.go Outdated Show resolved Hide resolved
// is allocated on the stack rather than the heap. BranchFactorLargest is
// at least len(n.children) which avoids memory allocations.
keys := make([]byte, 0, BranchFactorLargest)
for k := range n.children {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dumb question: is there a reason we don't just make this an array where the key is the index?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a reason we don't just make this an array where the key is the index?

None that I can think of.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we did it to save memory, it seems like these extra ops we need to do during encoding are probably not worth it (not to mention that it may not actually save).

Copy link
Contributor

@patrick-ogrady patrick-ogrady left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just nits

@StephenButtolph StephenButtolph added this pull request to the merge queue Mar 29, 2024
Merged via the queue into master with commit 2dbc9ba Mar 29, 2024
17 checks passed
@StephenButtolph StephenButtolph deleted the optimize-calculate-id2 branch March 29, 2024 20:34
joshua-kim added a commit that referenced this pull request Apr 4, 2024
commit b44feeb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 19:49:53 2024 -0400

    Remove `linked.Hashmap` locking (#2911)

commit 0fea82e
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 19:00:22 2024 -0400

    Avoid allocating new list entries (#2910)

commit d3a74eb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:57:33 2024 -0400

    Use generic linked list (#2909)

commit 93b9000
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:29:21 2024 -0400

    Remove full message from error logs (#2912)

commit e1954bb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:27:29 2024 -0400

    Implement generic `linked.List` (#2908)

    Co-authored-by: dhrubabasu <7675102+dhrubabasu@users.noreply.github.com>

commit f786a24
Author: marun <maru.newby@avalabs.org>
Date:   Wed Apr 3 19:18:29 2024 +0200

    [tmpnet] Misc cleanup to support xsvm warp test PR (#2903)

commit d103931
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 12:47:16 2024 -0400

    Rename linkedhashmap package to `linked` (#2907)

commit d4507bf
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Tue Apr 2 20:31:00 2024 -0400

    Remove AddEphemeralNode (#2887)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit d7452d3
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 20:21:29 2024 -0400

    Reuse key buffers during hashing (#2902)

commit 5be62de
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 17:16:42 2024 -0400

    Conditionally allocate WaitGroup memory (#2901)

commit e7b14e4
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:50:28 2024 -0400

    Move bootstrapping queue out of common (#2856)

commit 6699924
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:44:05 2024 -0400

    Optimize key creation in hashing (#2899)

commit e4b82cf
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:23:45 2024 -0400

    Remove usage of bytes.Buffer and bytes.Reader (#2896)

commit 434db9c
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 14:41:41 2024 -0400

    Improve tracing of merkledb trie updates (#2897)

commit f7def4d
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 13:47:56 2024 -0400

    Improve performance of marshalling small keys (#2895)

commit 00d4e0a
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 11:21:26 2024 -0400

    Optimize hashing of leaf nodes (#2894)

commit 617a9e2
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 11:01:46 2024 -0400

    Interval tree syncing integration (#2855)

commit 9a0c852
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 09:38:12 2024 -0400

    Remove memory alloc from encodeDBNode (#2893)

commit 4163dce
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 18:20:48 2024 -0400

    Move functions so that encode and decode are adjacent (#2892)

commit ce8253c
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 29 16:56:45 2024 -0400

    [vms/platformvm] Miscellaneous testing cleanups (#2891)

commit 2dbc9ba
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 16:20:53 2024 -0400

    Optimize merkledb hashing (#2886)

commit d046f29
Author: marun <maru.newby@avalabs.org>
Date:   Fri Mar 29 15:34:16 2024 +0100

    `ci`: Skip monitoring if secrets are not present (#2880)

commit 835d9ff
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 29 09:39:54 2024 -0400

    [vms/platformvm] Minimize exported functions in `txstest` (#2888)

commit b01d98d
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 00:43:33 2024 -0400

    Remove merkledb codec struct (#2883)

commit 10b881f
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Thu Mar 28 21:54:25 2024 -0400

    [components/avax] Remove `AtomicUTXOManager` interface (#2884)

commit 2a0bd08
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 28 19:53:12 2024 -0400

    Optimize encodeUint (#2882)

commit ec347cb
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Fri Mar 29 00:19:14 2024 +0100

    [vms/platformvm] Use `wallet` sdk in `txstest.Builder` (#2751)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>

commit 70cd8e1
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Thu Mar 28 17:27:12 2024 -0400

    [vms/platformvm] Declare `maxPageSize` in `service.go` (#2881)

Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
joshua-kim added a commit that referenced this pull request Apr 4, 2024
commit b44feeb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 19:49:53 2024 -0400

    Remove `linked.Hashmap` locking (#2911)

commit 0fea82e
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 19:00:22 2024 -0400

    Avoid allocating new list entries (#2910)

commit d3a74eb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:57:33 2024 -0400

    Use generic linked list (#2909)

commit 93b9000
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:29:21 2024 -0400

    Remove full message from error logs (#2912)

commit e1954bb
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 17:27:29 2024 -0400

    Implement generic `linked.List` (#2908)

    Co-authored-by: dhrubabasu <7675102+dhrubabasu@users.noreply.github.com>

commit f786a24
Author: marun <maru.newby@avalabs.org>
Date:   Wed Apr 3 19:18:29 2024 +0200

    [tmpnet] Misc cleanup to support xsvm warp test PR (#2903)

commit d103931
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Apr 3 12:47:16 2024 -0400

    Rename linkedhashmap package to `linked` (#2907)

commit d4507bf
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Tue Apr 2 20:31:00 2024 -0400

    Remove AddEphemeralNode (#2887)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit d7452d3
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 20:21:29 2024 -0400

    Reuse key buffers during hashing (#2902)

commit 5be62de
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 17:16:42 2024 -0400

    Conditionally allocate WaitGroup memory (#2901)

commit e7b14e4
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:50:28 2024 -0400

    Move bootstrapping queue out of common (#2856)

commit 6699924
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:44:05 2024 -0400

    Optimize key creation in hashing (#2899)

commit e4b82cf
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 16:23:45 2024 -0400

    Remove usage of bytes.Buffer and bytes.Reader (#2896)

commit 434db9c
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 14:41:41 2024 -0400

    Improve tracing of merkledb trie updates (#2897)

commit f7def4d
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 13:47:56 2024 -0400

    Improve performance of marshalling small keys (#2895)

commit 00d4e0a
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 11:21:26 2024 -0400

    Optimize hashing of leaf nodes (#2894)

commit 617a9e2
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 11:01:46 2024 -0400

    Interval tree syncing integration (#2855)

commit 9a0c852
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Apr 2 09:38:12 2024 -0400

    Remove memory alloc from encodeDBNode (#2893)

commit 4163dce
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 18:20:48 2024 -0400

    Move functions so that encode and decode are adjacent (#2892)

commit ce8253c
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 29 16:56:45 2024 -0400

    [vms/platformvm] Miscellaneous testing cleanups (#2891)

commit 2dbc9ba
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 16:20:53 2024 -0400

    Optimize merkledb hashing (#2886)

commit d046f29
Author: marun <maru.newby@avalabs.org>
Date:   Fri Mar 29 15:34:16 2024 +0100

    `ci`: Skip monitoring if secrets are not present (#2880)

commit 835d9ff
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 29 09:39:54 2024 -0400

    [vms/platformvm] Minimize exported functions in `txstest` (#2888)

commit b01d98d
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 29 00:43:33 2024 -0400

    Remove merkledb codec struct (#2883)

commit 10b881f
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Thu Mar 28 21:54:25 2024 -0400

    [components/avax] Remove `AtomicUTXOManager` interface (#2884)

commit 2a0bd08
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 28 19:53:12 2024 -0400

    Optimize encodeUint (#2882)

commit ec347cb
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Fri Mar 29 00:19:14 2024 +0100

    [vms/platformvm] Use `wallet` sdk in `txstest.Builder` (#2751)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>

commit 70cd8e1
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Thu Mar 28 17:27:12 2024 -0400

    [vms/platformvm] Declare `maxPageSize` in `service.go` (#2881)

commit 42aefda
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 27 17:36:37 2024 -0400

    Add tests for inefficient string formatting (#2878)

commit cb9386f
Author: marun <maru.newby@avalabs.org>
Date:   Wed Mar 27 21:52:17 2024 +0100

    `tmpnet`: Improve subnet configuration (#2871)

    Signed-off-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 2f16057
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 27 16:04:21 2024 -0400

    Update health API readme (#2875)

commit d60affa
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Wed Mar 27 17:09:52 2024 +0100

    Cleanup codec constants (#2699)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 402f96f
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 26 17:06:43 2024 -0400

    Implement interval tree to replace bootstrapping jobs queue (#2756)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
    Co-authored-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit 800020b
Author: Meaghan FitzGerald <meag.fitz@avalabs.org>
Date:   Tue Mar 26 14:10:34 2024 -0600

    docs migration (#2845)

commit 0f6b123
Author: marun <maru.newby@avalabs.org>
Date:   Tue Mar 26 19:12:18 2024 +0100

    Add detail to tmpnet metrics documentation (#2854)

    Signed-off-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit f57f0f2
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 26 13:59:34 2024 -0400

    Reindex P-chain blocks (#2869)

commit f945aa5
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 26 13:41:51 2024 -0400

    indicies -> indices (#2873)

commit c896704
Author: marun <maru.newby@avalabs.org>
Date:   Mon Mar 25 19:19:58 2024 +0100

    `tmpnet`: Ensure nodes are properly detached from the parent process (#2859)

    Signed-off-by: marun <maru.newby@avalabs.org>
    Signed-off-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Darioush Jalali <darioush.jalali@avalabs.org>

commit 9833b45
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Sat Mar 23 22:21:23 2024 -0400

    Revert removal of legacy P-chain block parsing (#2866)

commit 27bea09
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 22 18:01:50 2024 -0400

    Push antithesis images (#2864)

commit 95edd92
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Mar 22 10:46:12 2024 -0400

    Bump github.com/consensys/gnark-crypto from 0.10.0 to 0.12.1 (#2862)

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7a67e5a
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 21 18:15:24 2024 -0400

    Update versions for v1.11.3 (#2852)

    Co-authored-by: Darioush Jalali <darioush.jalali@avalabs.org>

commit ffdb67f
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 21 15:39:56 2024 -0400

    Remove duplicate log (#2860)

commit 14cdc04
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 21 11:43:13 2024 -0400

    Remove useless bootstrapping metric (#2858)

commit 4d9bfdd
Author: marun <maru.newby@avalabs.org>
Date:   Thu Mar 21 16:42:00 2024 +0100

    `tmpnet`: Reuse dynamically-allocated API port across restarts (#2857)

commit 23e5417
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 20 01:48:04 2024 -0400

    Remove fallback validator height indexing (#2801)

commit 0118611
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Tue Mar 19 18:58:15 2024 +0100

    X-Chain - repackaged wallet backends (#2762)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 9cef7d3
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Tue Mar 19 02:51:27 2024 +0100

    P-Chain - repackaged wallet backends (#2757)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit e88e565
Author: marun <maru.newby@avalabs.org>
Date:   Mon Mar 18 19:18:53 2024 +0100

    `tmpnet`: Enable collection of logs and metrics (#2820)

commit 6249bab
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Mon Mar 18 19:11:00 2024 +0100

    Dynamic Fees - Add E Upgrade boilerplate (#2597)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 6a3661b
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Sun Mar 17 01:45:33 2024 -0400

    Remove verify height index (#2634)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit a18c4a3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sat Mar 16 16:38:40 2024 +0000

    Bump bufbuild/buf-setup-action from 1.29.0 to 1.30.0 (#2842)

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit b62846f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Mar 15 15:28:36 2024 +0000

    Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#2849)

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 5eaa9c2
Author: Derek Rada <Dirrk@users.noreply.github.com>
Date:   Fri Mar 15 08:00:29 2024 -0700

    packer build (#2806)

    Co-authored-by: yevhenvolchenko <yevhenvolchenko@users.noreply.github.com>

commit 598018b
Author: marun <maru.newby@avalabs.org>
Date:   Thu Mar 14 20:38:07 2024 -0700

    `tmpnet`: Add a UUID to temporary networks to support metrics collection (#2763)

commit 4e2d005
Author: Dan Laine <daniel.laine@avalabs.org>
Date:   Thu Mar 14 16:22:59 2024 -0400

    update merkledb readme to specify key length is in bits (#2840)

commit 12cd5ec
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 12 20:52:28 2024 -0400

    Allow configuring push gossip to send txs to validators by stake (#2835)

commit f0166fd
Author: Dan Laine <daniel.laine@avalabs.org>
Date:   Tue Mar 12 19:14:20 2024 -0400

    merkledb metric naming nits (#2844)

commit 31c0ce3
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 12 19:13:48 2024 -0400

    Add Antithesis docker compose file (#2838)

    Signed-off-by: Stephen Buttolph <stephen@avalabs.org>
    Co-authored-by: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>

commit 6649530
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Tue Mar 12 18:43:56 2024 -0400

    Add antithesis PoC workload (#2796)

commit ddf66ea
Author: Alberto Benegiamo <alberto.benegiamo@gmail.com>
Date:   Tue Mar 12 00:31:13 2024 +0100

    P-chain:  Improve GetValidatorsSet error expressivity (#2808)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit f3abe3c
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Mon Mar 11 09:37:40 2024 -0400

    Remove engine type handling for everything other than GetAncestors (#2800)

commit 6ec6a62
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Mon Mar 11 09:09:23 2024 -0400

    Remove Durango codec check (#2818)

commit 2196015
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Mon Mar 11 09:09:02 2024 -0400

    Remove Pre-Durango TLS certificate parsing logic (#2831)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit d003d29
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 23:12:16 2024 -0500

    Remove legacy p2p message handling (#2833)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit b15c743
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 19:15:54 2024 -0500

    [utils/compression] Remove gzip compressor (#2839)

commit f02d463
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 8 13:43:50 2024 -0500

    Prevent zero length values in slices and maps in codec (#2819)

commit d2d09c2
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 13:35:29 2024 -0500

    [vms/platformvm] Remove state pruning logic (#2825)

commit 8fedfd9
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 13:31:11 2024 -0500

    [vms/avm] Remove `snow.Context` from `Network` (#2834)

commit 73b6c60
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 12:14:50 2024 -0500

    [vms/avm] Cleanup `GetTx` + remove state pruning logic (#2826)

commit b8cd687
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Fri Mar 8 11:03:26 2024 -0500

    [network/peer] Disconnect from peers who only send legacy version field (#2830)

    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit 4be015b
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Fri Mar 8 10:55:34 2024 -0500

    Combine AppGossip and AppGossipSpecific (#2836)

commit a593cc4
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Thu Mar 7 17:45:11 2024 -0500

    [snow/networking] Enforce `PreferredIDAtHeight` in `Chits` messages (#2827)

commit 50ca08e
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 7 15:30:34 2024 -0500

    Remove pre-Durango checks in BLS key verification (#2824)

commit 1340cce
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Thu Mar 7 15:16:23 2024 -0500

    Remove pre-Durango block building logic and verification (#2823)

commit 67b1aa0
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Wed Mar 6 16:21:35 2024 -0500

    [vms/platformvm] Remove `ErrFutureStakeTime` check in `VerifyTx` (#2797)

commit 639b9ca
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Wed Mar 6 13:08:15 2024 -0500

    [vms/platformvm] Remove `GetPendingValidators` API (#2817)

commit 90a13f3
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 6 12:44:15 2024 -0500

    Remove put gossip (#2790)

commit dc03622
Author: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com>
Date:   Wed Mar 6 11:47:43 2024 -0500

    Use `BaseTx` in P-chain wallet (#2731)

    Co-authored-by: Alberto Benegiamo <alberto.benegiamo@gmail.com>
    Co-authored-by: Stephen Buttolph <stephen@avalabs.org>

commit dc2c5d0
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 6 11:17:20 2024 -0500

    Remove bitmaskCodec (#2792)

commit 5793120
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 6 10:57:34 2024 -0500

    Remove peerlist push gossip (#2791)

commit 66ae8ef
Author: Stephen Buttolph <stephen@avalabs.org>
Date:   Wed Mar 6 10:51:17 2024 -0500

    Cleanup consensus metrics (#2815)

Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

3 participants