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

Refactor bootstrapper implementation into consensus #2300

Merged
merged 19 commits into from
Nov 16, 2023

Conversation

StephenButtolph
Copy link
Contributor

Why this should be merged

We're working on removing the common.Bootstrapper this is a large refactor that separates the logical bootstrapping algorithm from the engine implementation.

How this works

Refactors the bootstrapping implementation into a simple to use datastructure.

How this was tested

Added extensive tests + CI

@StephenButtolph StephenButtolph added consensus This involves consensus cleanup Code quality improvement labels Nov 14, 2023
@StephenButtolph StephenButtolph self-assigned this Nov 14, 2023
@StephenButtolph StephenButtolph added this to the v1.10.16 milestone Nov 14, 2023
snow/consensus/snowman/bootstrapper/majority.go Outdated Show resolved Hide resolved
// consider that block to be accepted by the network. This assumes that a
// majority of the network is correct. If a majority of the network is
// malicious, the node may accept an incorrect block.
type Bootstrapper interface {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The reason these functions include context.Context is to add tracing support. I feel like that can be left to a later PR though... This PR is already quite large.

Comment on lines 143 to 178
// We've received the accepted frontier from every bootstrap validator
// Ask each bootstrap validator to filter the list of containers that we were
// told are on the accepted frontier such that the list only contains containers
// they think are accepted.
totalSampledWeight, err := b.sampledBeacons.TotalWeight(b.Ctx.SubnetID)
if err != nil {
return fmt.Errorf("failed to get total weight of sampled beacons for subnet %s: %w", b.Ctx.SubnetID, err)
}
beaconsTotalWeight, err := b.Beacons.TotalWeight(b.Ctx.SubnetID)
if err != nil {
return fmt.Errorf("failed to get total weight of beacons for subnet %s: %w", b.Ctx.SubnetID, err)
}
newAlpha := float64(totalSampledWeight*b.Alpha) / float64(beaconsTotalWeight)

failedBeaconWeight, err := b.Beacons.SubsetWeight(b.Ctx.SubnetID, b.failedAcceptedFrontier)
if err != nil {
return fmt.Errorf("failed to get total weight of failed beacons: %w", err)
}

// fail the bootstrap if the weight is not enough to bootstrap
if float64(totalSampledWeight)-newAlpha < float64(failedBeaconWeight) {
if b.Config.RetryBootstrap {
b.Ctx.Log.Debug("restarting bootstrap",
zap.String("reason", "not enough frontiers received"),
zap.Int("numBeacons", b.Beacons.Count(b.Ctx.SubnetID)),
zap.Int("numFailedBootstrappers", b.failedAcceptedFrontier.Len()),
zap.Int("numBootstrapAttemps", b.bootstrapAttempts),
)
return b.Restart(ctx, false)
}

b.Ctx.Log.Debug("didn't receive enough frontiers",
zap.Int("numFailedValidators", b.failedAcceptedFrontier.Len()),
zap.Int("numBootstrapAttempts", b.bootstrapAttempts),
)
}
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 whole mechanism was very questionable. The security isn't impacted by the frontier... The check at the end that the accepted frontier is non-empty should be enough to ensure that we don't mark bootstrapping as finished before we should. Technically there could be some weird situation where we only end up getting a majority of responses for something like the genesis block... But this is really a hacky attempt to prevent that at best.

I think it makes sense to just remove it.

Comment on lines -242 to -256
// if we had too many timeouts when asking for validator votes, we
// should restart bootstrap hoping for the network problems to go away;
// otherwise, we received enough (>= b.Alpha) responses, but no frontier
// was supported by a majority of validators (i.e. votes are split
// between minorities supporting different frontiers).
beaconTotalWeight, err := b.Beacons.TotalWeight(b.Ctx.SubnetID)
if err != nil {
return fmt.Errorf("failed to get total weight of beacons for subnet %s: %w", b.Ctx.SubnetID, err)
}
failedBeaconWeight, err := b.Beacons.SubsetWeight(b.Ctx.SubnetID, b.failedAccepted)
if err != nil {
return fmt.Errorf("failed to get total weight of failed beacons for subnet %s: %w", b.Ctx.SubnetID, err)
}
votingStakes := beaconTotalWeight - failedBeaconWeight
if b.Config.RetryBootstrap && votingStakes < b.Alpha {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We added this in because technically on the DAG - it was possible for there to be no accepted vertices when starting a new DAG... Now we can just see if the accepted set is empty, because every chain has a genesis block and every DAG has a stop vertex.

Comment on lines 78 to 82
m.log.Error("received unexpected message",
zap.Stringer("messageOp", message.AcceptedFrontierOp),
zap.Stringer("nodeID", nodeID),
zap.Stringers("blkIDs", blkIDs),
)
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 used to be a DEBUG log because the engine used to need to handle unexpected messages... But these should be filtered by the chain router now.

Comment on lines 118 to 122
m.log.Error("received unexpected message",
zap.Stringer("messageOp", message.AcceptedOp),
zap.Stringer("nodeID", nodeID),
zap.Stringers("blkIDs", blkIDs),
)
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 used to be a DEBUG log because the engine used to need to handle unexpected messages... But these should be filtered by the chain router now.

// Sample keys from [elements] uniformly by weight without replacement. The
// returned set will have size less than or equal to [maxSize]. This function
// will error if the sum of all weights overflows.
func Sample[T comparable](elements map[T]uint64, maxSize int) (set.Set[T], error) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

There wasn't really a need to make this generic... But I felt like it was just as clean as hardcoding ids.NodeID... 🤷

Choose a reason for hiding this comment

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

If we wanted to, we could also make Majority and Minority generic. Same as here, though, it wouldn't really buy us anything.

Copy link
Contributor

Choose a reason for hiding this comment

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

We could also think about either moving this into utils or making this package-private so discourage people from using bootstrapper.Sample to get a random subset of a map

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 was going to put this into the sampler package - but it caused a circular dependency because of the SampleableSet.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also it can't actually be package private - it is used in a different package

Comment on lines -49 to -72
// Holds the beacons that were sampled for the accepted frontier
sampledBeacons validators.Manager
// IDs of validators we should request an accepted frontier from
pendingSendAcceptedFrontier set.Set[ids.NodeID]
// IDs of validators we requested an accepted frontier from but haven't
// received a reply yet
pendingReceiveAcceptedFrontier set.Set[ids.NodeID]
// IDs of validators that failed to respond with their accepted frontier
failedAcceptedFrontier set.Set[ids.NodeID]
// IDs of all the returned accepted frontiers
acceptedFrontierSet set.Set[ids.ID]

// IDs of validators we should request filtering the accepted frontier from
pendingSendAccepted set.Set[ids.NodeID]
// IDs of validators we requested filtering the accepted frontier from but
// haven't received a reply yet
pendingReceiveAccepted set.Set[ids.NodeID]
// IDs of validators that failed to respond with their filtered accepted
// frontier
failedAccepted set.Set[ids.NodeID]
// IDs of the returned accepted containers and the stake weight that has
// marked them as accepted
acceptedVotes map[ids.ID]uint64
acceptedFrontier []ids.ID
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 is the payoff 🙏

RecordAccepted(ctx context.Context, nodeID ids.NodeID, blkIDs []ids.ID) error
// GetAccepted returns a set of accepted blocks along with a flag to
// identify that the set has finished being calculated.
GetAccepted(ctx context.Context) (blkIDs []ids.ID, finalized bool)

Choose a reason for hiding this comment

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

Why does this return a slice of IDs whereas other methods return a set of IDs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We pass around sets of nodeIDs and slices of IDs. This matches the types expected by the message sender.

snow/engine/common/bootstrapper.go Outdated Show resolved Hide resolved
snow/consensus/snowman/bootstrapper/majority.go Outdated Show resolved Hide resolved
}
}

m.log.Debug("finalized bootstrapping instance",
Copy link
Contributor

Choose a reason for hiding this comment

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

I feel like this log should be done in the caller of Result

Copy link
Contributor Author

@StephenButtolph StephenButtolph Nov 16, 2023

Choose a reason for hiding this comment

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

It isn't particularly easy to move this log out of Minority... I feel like it's cleaner to keep the logs in both Minority and Majority rather than in Minority and the engine

Comment on lines +79 to +99
if !m.finished() {
return nil
}

var (
totalWeight uint64
err error
)
for _, weight := range m.nodeWeights {
totalWeight, err = math.Add64(totalWeight, weight)
if err != nil {
return err
}
}

requiredWeight := totalWeight/2 + 1
for blkID, weight := range m.received {
if weight >= requiredWeight {
m.accepted = append(m.accepted, blkID)
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we should also consider adding bool to the return signature here so instead of calling both RecordOpinion and Result to figure out if we need to keep poling peers we can just call RecordOpinion in a loop. This way we can also move all this code into Result, and get rid of the m.accepted field.

Copy link
Contributor

@joshua-kim joshua-kim Nov 15, 2023

Choose a reason for hiding this comment

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

Left an offline comment on slack but we can also consider supplying a filter function func(map[ids.ID]uint64) bool that Result can use to filter out any valid blocks which will get rid of the duplicated code in Minority and the Poll interface.

Copy link
Contributor Author

@StephenButtolph StephenButtolph Nov 16, 2023

Choose a reason for hiding this comment

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

We need Result on the interface for the Minority implementation to be usable because the minority result is used repeatedly to send the majority requests. I'm sure that we could combine the implementations somehow... But I feel like currently there really isn't much duplicated code... The structure of the code may look similar but the logic is pretty different

// Sample keys from [elements] uniformly by weight without replacement. The
// returned set will have size less than or equal to [maxSize]. This function
// will error if the sum of all weights overflows.
func Sample[T comparable](elements map[T]uint64, maxSize int) (set.Set[T], error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

We could also think about either moving this into utils or making this package-private so discourage people from using bootstrapper.Sample to get a random subset of a map

@StephenButtolph StephenButtolph added this pull request to the merge queue Nov 16, 2023
Merged via the queue into dev with commit 043644f Nov 16, 2023
16 checks passed
@StephenButtolph StephenButtolph deleted the refactor-common-bootstrapper branch November 16, 2023 17:36
joshua-kim added a commit that referenced this pull request Nov 17, 2023
commit fe72c5b
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 01:23:21 2023 -0500

    Remove `common.Config` functions (#2328)

commit 585424e
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 00:39:46 2023 -0500

    Unexport avalanche constant from common package (#2327)

commit 8520112
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 16 20:53:10 2023 -0800

    Move `network` implementation to separate package (#2296)

    Signed-off-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 5236d72
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 16 20:08:57 2023 -0500

    Remove useless anon functions (#2326)

commit e7ca38b
Author: Dan Laine <[email protected]>
Date:   Thu Nov 16 16:03:17 2023 -0500

    Update zap dependency to v1.26.0 (#2325)

commit 6900e72
Author: Dan Laine <[email protected]>
Date:   Thu Nov 16 15:20:19 2023 -0500

    nit: loop --> variadic (#2316)

commit 35fbb3a
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 16 10:33:18 2023 -0700

    Pchain - Cleanup NodeID generation in UTs (#2291)

    Co-authored-by: Dan Laine <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 043644f
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 16 12:13:09 2023 -0500

    Refactor bootstrapper implementation into consensus (#2300)

    Co-authored-by: Dan Laine <[email protected]>

commit f1ec30c
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 16 12:03:00 2023 -0500

    Update `error_code` to be int32 instead of uint32. (#2322)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 348f842
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 16 08:39:03 2023 -0800

    Remove `Network` interface from `Builder` (#2312)

commit 6484de4
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 16 04:31:34 2023 -0500

    Rename AppRequestFailed to AppError (#2321)

    Signed-off-by: Joshua Kim <[email protected]>

commit 3d0611c
Author: Joshua Kim <[email protected]>
Date:   Wed Nov 15 19:24:10 2023 -0500

    Remove error from SDK AppGossip handler (#2252)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 01a1bbe
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 15 16:01:29 2023 -0800

    Remove `AddUnverifiedTx` from `Builder` (#2311)

commit e8ef4ad
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 15 14:15:17 2023 -0800

    Move `AddUnverifiedTx` logic to `network.IssueTx` (#2310)

commit dcc6ea8
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 17:13:19 2023 -0500

    Use zap.Stringer rather than zap.Any (#2320)

commit 44f3aba
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 17:12:57 2023 -0500

    Replace unique slices with sets in the engine interface (#2317)

commit d00b67f
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 11:43:17 2023 -0500

    Simplify avalanche bootstrapping (#2286)

commit 5dff153
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 12:47:06 2023 -0800

    Add `VerifyTx` to `executor.Manager` (#2293)

commit 29f86e9
Author: marun <[email protected]>
Date:   Tue Nov 14 21:25:25 2023 +0100

    e2e: More fixture refinement in support of coreth integration testing  (#2275)

commit 72d2fae
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 10:26:39 2023 -0800

    Add `recentTxsLock` to platform `network` struct (#2294)

commit eb21b42
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 10:24:01 2023 -0800

    Move management of platformvm preferred block to `executor.Manager` (#2292)

commit 7f70fcf
Author: Stephen Buttolph <[email protected]>
Date:   Mon Nov 13 15:18:34 2023 -0500

    Simplify get server creation (#2285)

    Co-authored-by: Dan Laine <[email protected]>

commit baf0ef7
Author: Dan Laine <[email protected]>
Date:   Mon Nov 13 10:33:31 2023 -0500

    `merkledb` -- Add `Clearer` interface  (#2277)

commit b8746de
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 9 16:21:04 2023 -0800

    Embed `noop` handler for all unhandled messages (#2288)

commit 86201ae
Author: David Boehm <[email protected]>
Date:   Thu Nov 9 14:08:10 2023 -0500

    Remove sentinel node from MerkleDB proofs (#2106)

    Signed-off-by: David Boehm <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 094ce50
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 9 13:58:28 2023 -0500

    Remove Lazy Initialize on Node (#1384)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit e3f1212
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 9 10:08:59 2023 -0700

    Genesis validators cleanup (#2282)

commit 151621f
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 9 09:33:42 2023 -0700

    Cleanup `ids.NodeID` usage (#2280)

commit ebaf9d4
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 18:08:23 2023 -0500

    Move `DropExpiredStakerTxs` to platformvm mempool (#2279)

commit c94ff4e
Author: David Boehm <[email protected]>
Date:   Wed Nov 8 17:55:02 2023 -0500

    MerkleDB:Naming and comments cleanup (#2274)

    Co-authored-by: Dan Laine <[email protected]>

commit bcd4a94
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 17:28:33 2023 -0500

    Cleanup platformvm mempool errs (#2278)

commit aba404e
Author: marun <[email protected]>
Date:   Wed Nov 8 22:54:42 2023 +0100

    e2e: Refactor suite setup and helpers to tests/fixture/e2e for reuse by coreth (#2265)

commit fc95834
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 16:41:39 2023 -0500

    `mempool.NewMempool` -> `mempool.New` (#2276)

commit 93d88c0
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 15:02:10 2023 -0500

    Return if element was deleted from `Hashmap` (#2271)

    Co-authored-by: Dan Laine <[email protected]>

commit 1329a59
Author: Dan Laine <[email protected]>
Date:   Wed Nov 8 12:56:27 2023 -0500

    Add fuzz test for `NewIteratorWithStartAndPrefix` (#1992)

    Co-authored-by: Alberto Benegiamo <[email protected]>

commit 22f3c89
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 19:12:17 2023 -0500

    `merkledb` -- remove unneeded var declarations (#2269)

commit 683fcfa
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:36:20 2023 -0500

    Add read-only database flag (`--db-read-only`)  (#2266)

commit 52f93c8
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:34:19 2023 -0500

    `merkledb` -- fix nil check in test (#2268)

commit 1faec38
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:34:09 2023 -0500

    `merkledb` -- rename nit (#2267)

commit cdcfb5b
Author: felipemadero <[email protected]>
Date:   Tue Nov 7 17:06:59 2023 -0300

    Use extended public key to derive ledger addresses (#2246)

    Signed-off-by: felipemadero <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 7490a92
Author: Joshua Kim <[email protected]>
Date:   Mon Nov 6 15:39:23 2023 -0500

    Document p2p package (#2254)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 10bd428
Author: Dhruba Basu <[email protected]>
Date:   Mon Nov 6 14:49:45 2023 -0500

    Remove unused `UnsortedEquals` function (#2264)

commit e710899
Author: David Boehm <[email protected]>
Date:   Mon Nov 6 13:36:34 2023 -0500

    Remove Token constants information from keys (#2197)

    Signed-off-by: David Boehm <[email protected]>
    Signed-off-by: Dan Laine <[email protected]>
    Co-authored-by: Darioush Jalali <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 558d8fb
Author: vuittont60 <[email protected]>
Date:   Mon Nov 6 22:26:43 2023 +0800

    Fix typos in docs (#2261)

    Signed-off-by: vuittont60 <[email protected]>

commit a8db08e
Author: marun <[email protected]>
Date:   Mon Nov 6 15:26:27 2023 +0100

    e2e: Make NewWallet and NewEthclient regular functions (#2262)

commit aaed8f3
Author: Stephen Buttolph <[email protected]>
Date:   Sat Nov 4 17:29:12 2023 -0400

    Track all subnet validator sets in the validator manager (#2253)

commit cec1cd1
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 3 19:19:26 2023 -0400

    Require poll metrics to be registered (#2260)

commit e4cb2cd
Author: Dan Laine <[email protected]>
Date:   Fri Nov 3 17:33:44 2023 -0400

    Cleanup `ipcs` `Socket` test (#2257)

commit 437ade8
Author: marun <[email protected]>
Date:   Fri Nov 3 21:45:12 2023 +0100

    Switch to using require.TestingT interface in SenderTest struct (#2258)

commit 11f1b55
Author: DoTheBestToGetTheBest <[email protected]>
Date:   Thu Nov 2 15:41:47 2023 -0700

    feat(api) : Peers function to return the PrimaryAlias of the chainID (#2251)

    Signed-off-by: DoTheBestToGetTheBest <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit c174c62
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 2 16:20:03 2023 -0400

    Return log levels from admin.SetLoggerLevel (#2250)

commit 20f3580
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 1 22:11:47 2023 -0400

    Update versions for v1.10.15 (#2245)

commit 36d1630
Author: Cesar <[email protected]>
Date:   Wed Nov 1 22:44:14 2023 -0300

    Add nullable option to codec (#2171)

    Signed-off-by: Cesar <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 4957ccb
Author: Dan Laine <[email protected]>
Date:   Tue Oct 31 18:38:57 2023 -0400

    Add `pebble` as valid value for `--db-type`. (#2244)

    Signed-off-by: Dan Laine <[email protected]>
    Co-authored-by: Dhruba Basu <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 047d493
Author: Dhruba Basu <[email protected]>
Date:   Tue Oct 31 18:14:14 2023 -0400

    Add `BaseTx` support to platformvm (#2232)

    Signed-off-by: Dhruba Basu <[email protected]>

commit 1f9df8f
Author: Dan Laine <[email protected]>
Date:   Tue Oct 31 17:10:05 2023 -0400

    Remove `database.Manager` (#2239)

    Signed-off-by: Dan Laine <[email protected]>

commit 8d15c22
Author: Stephen Buttolph <[email protected]>
Date:   Tue Oct 31 13:28:49 2023 -0400

    Document host and port behavior in help text (#2236)

commit 76d756f
Author: Joshua Kim <[email protected]>
Date:   Tue Oct 31 11:43:13 2023 -0400

    Remove error from Router AppGossip (#2238)

    Signed-off-by: Joshua Kim <[email protected]>

commit 5b96789
Author: Joshua Kim <[email protected]>
Date:   Mon Oct 30 16:41:51 2023 -0400

    P2P AppRequestFailed protobuf definition (#2111)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 826f941
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 19:41:19 2023 -0400

    Fix test typos (#2233)

    Signed-off-by: marun <[email protected]>
    Co-authored-by: marun <[email protected]>

commit 66375f5
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 18:44:34 2023 -0400

    Trim down size of secp256k1 `Factory` struct (#2223)

    Signed-off-by: Dhruba Basu <[email protected]>

commit 42d4e3e
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 17:44:38 2023 -0400

    Enable `perfsprint` linter (#2229)

commit b83af9b
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 17:42:03 2023 -0400

    Add `utils.Err` helper (#2212)

    Signed-off-by: Dhruba Basu <[email protected]>

Signed-off-by: Joshua Kim <[email protected]>
joshua-kim added a commit that referenced this pull request Nov 17, 2023
commit 4768ed4
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 12:50:07 2023 -0500

    Remove bootstrapping retry config (#2301)

commit 392b313
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 12:43:15 2023 -0500

    Move engine startup into helper function (#2329)

commit fe72c5b
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 01:23:21 2023 -0500

    Remove `common.Config` functions (#2328)

commit 585424e
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 17 00:39:46 2023 -0500

    Unexport avalanche constant from common package (#2327)

commit 8520112
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 16 20:53:10 2023 -0800

    Move `network` implementation to separate package (#2296)

    Signed-off-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 5236d72
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 16 20:08:57 2023 -0500

    Remove useless anon functions (#2326)

commit e7ca38b
Author: Dan Laine <[email protected]>
Date:   Thu Nov 16 16:03:17 2023 -0500

    Update zap dependency to v1.26.0 (#2325)

commit 6900e72
Author: Dan Laine <[email protected]>
Date:   Thu Nov 16 15:20:19 2023 -0500

    nit: loop --> variadic (#2316)

commit 35fbb3a
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 16 10:33:18 2023 -0700

    Pchain - Cleanup NodeID generation in UTs (#2291)

    Co-authored-by: Dan Laine <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 043644f
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 16 12:13:09 2023 -0500

    Refactor bootstrapper implementation into consensus (#2300)

    Co-authored-by: Dan Laine <[email protected]>

commit f1ec30c
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 16 12:03:00 2023 -0500

    Update `error_code` to be int32 instead of uint32. (#2322)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 348f842
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 16 08:39:03 2023 -0800

    Remove `Network` interface from `Builder` (#2312)

commit 6484de4
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 16 04:31:34 2023 -0500

    Rename AppRequestFailed to AppError (#2321)

    Signed-off-by: Joshua Kim <[email protected]>

commit 3d0611c
Author: Joshua Kim <[email protected]>
Date:   Wed Nov 15 19:24:10 2023 -0500

    Remove error from SDK AppGossip handler (#2252)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 01a1bbe
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 15 16:01:29 2023 -0800

    Remove `AddUnverifiedTx` from `Builder` (#2311)

commit e8ef4ad
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 15 14:15:17 2023 -0800

    Move `AddUnverifiedTx` logic to `network.IssueTx` (#2310)

commit dcc6ea8
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 17:13:19 2023 -0500

    Use zap.Stringer rather than zap.Any (#2320)

commit 44f3aba
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 17:12:57 2023 -0500

    Replace unique slices with sets in the engine interface (#2317)

commit d00b67f
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 15 11:43:17 2023 -0500

    Simplify avalanche bootstrapping (#2286)

commit 5dff153
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 12:47:06 2023 -0800

    Add `VerifyTx` to `executor.Manager` (#2293)

commit 29f86e9
Author: marun <[email protected]>
Date:   Tue Nov 14 21:25:25 2023 +0100

    e2e: More fixture refinement in support of coreth integration testing  (#2275)

commit 72d2fae
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 10:26:39 2023 -0800

    Add `recentTxsLock` to platform `network` struct (#2294)

commit eb21b42
Author: Dhruba Basu <[email protected]>
Date:   Tue Nov 14 10:24:01 2023 -0800

    Move management of platformvm preferred block to `executor.Manager` (#2292)

commit 7f70fcf
Author: Stephen Buttolph <[email protected]>
Date:   Mon Nov 13 15:18:34 2023 -0500

    Simplify get server creation (#2285)

    Co-authored-by: Dan Laine <[email protected]>

commit baf0ef7
Author: Dan Laine <[email protected]>
Date:   Mon Nov 13 10:33:31 2023 -0500

    `merkledb` -- Add `Clearer` interface  (#2277)

commit b8746de
Author: Dhruba Basu <[email protected]>
Date:   Thu Nov 9 16:21:04 2023 -0800

    Embed `noop` handler for all unhandled messages (#2288)

commit 86201ae
Author: David Boehm <[email protected]>
Date:   Thu Nov 9 14:08:10 2023 -0500

    Remove sentinel node from MerkleDB proofs (#2106)

    Signed-off-by: David Boehm <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 094ce50
Author: Joshua Kim <[email protected]>
Date:   Thu Nov 9 13:58:28 2023 -0500

    Remove Lazy Initialize on Node (#1384)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit e3f1212
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 9 10:08:59 2023 -0700

    Genesis validators cleanup (#2282)

commit 151621f
Author: Alberto Benegiamo <[email protected]>
Date:   Thu Nov 9 09:33:42 2023 -0700

    Cleanup `ids.NodeID` usage (#2280)

commit ebaf9d4
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 18:08:23 2023 -0500

    Move `DropExpiredStakerTxs` to platformvm mempool (#2279)

commit c94ff4e
Author: David Boehm <[email protected]>
Date:   Wed Nov 8 17:55:02 2023 -0500

    MerkleDB:Naming and comments cleanup (#2274)

    Co-authored-by: Dan Laine <[email protected]>

commit bcd4a94
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 17:28:33 2023 -0500

    Cleanup platformvm mempool errs (#2278)

commit aba404e
Author: marun <[email protected]>
Date:   Wed Nov 8 22:54:42 2023 +0100

    e2e: Refactor suite setup and helpers to tests/fixture/e2e for reuse by coreth (#2265)

commit fc95834
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 16:41:39 2023 -0500

    `mempool.NewMempool` -> `mempool.New` (#2276)

commit 93d88c0
Author: Dhruba Basu <[email protected]>
Date:   Wed Nov 8 15:02:10 2023 -0500

    Return if element was deleted from `Hashmap` (#2271)

    Co-authored-by: Dan Laine <[email protected]>

commit 1329a59
Author: Dan Laine <[email protected]>
Date:   Wed Nov 8 12:56:27 2023 -0500

    Add fuzz test for `NewIteratorWithStartAndPrefix` (#1992)

    Co-authored-by: Alberto Benegiamo <[email protected]>

commit 22f3c89
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 19:12:17 2023 -0500

    `merkledb` -- remove unneeded var declarations (#2269)

commit 683fcfa
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:36:20 2023 -0500

    Add read-only database flag (`--db-read-only`)  (#2266)

commit 52f93c8
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:34:19 2023 -0500

    `merkledb` -- fix nil check in test (#2268)

commit 1faec38
Author: Dan Laine <[email protected]>
Date:   Tue Nov 7 17:34:09 2023 -0500

    `merkledb` -- rename nit (#2267)

commit cdcfb5b
Author: felipemadero <[email protected]>
Date:   Tue Nov 7 17:06:59 2023 -0300

    Use extended public key to derive ledger addresses (#2246)

    Signed-off-by: felipemadero <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 7490a92
Author: Joshua Kim <[email protected]>
Date:   Mon Nov 6 15:39:23 2023 -0500

    Document p2p package (#2254)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 10bd428
Author: Dhruba Basu <[email protected]>
Date:   Mon Nov 6 14:49:45 2023 -0500

    Remove unused `UnsortedEquals` function (#2264)

commit e710899
Author: David Boehm <[email protected]>
Date:   Mon Nov 6 13:36:34 2023 -0500

    Remove Token constants information from keys (#2197)

    Signed-off-by: David Boehm <[email protected]>
    Signed-off-by: Dan Laine <[email protected]>
    Co-authored-by: Darioush Jalali <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 558d8fb
Author: vuittont60 <[email protected]>
Date:   Mon Nov 6 22:26:43 2023 +0800

    Fix typos in docs (#2261)

    Signed-off-by: vuittont60 <[email protected]>

commit a8db08e
Author: marun <[email protected]>
Date:   Mon Nov 6 15:26:27 2023 +0100

    e2e: Make NewWallet and NewEthclient regular functions (#2262)

commit aaed8f3
Author: Stephen Buttolph <[email protected]>
Date:   Sat Nov 4 17:29:12 2023 -0400

    Track all subnet validator sets in the validator manager (#2253)

commit cec1cd1
Author: Stephen Buttolph <[email protected]>
Date:   Fri Nov 3 19:19:26 2023 -0400

    Require poll metrics to be registered (#2260)

commit e4cb2cd
Author: Dan Laine <[email protected]>
Date:   Fri Nov 3 17:33:44 2023 -0400

    Cleanup `ipcs` `Socket` test (#2257)

commit 437ade8
Author: marun <[email protected]>
Date:   Fri Nov 3 21:45:12 2023 +0100

    Switch to using require.TestingT interface in SenderTest struct (#2258)

commit 11f1b55
Author: DoTheBestToGetTheBest <[email protected]>
Date:   Thu Nov 2 15:41:47 2023 -0700

    feat(api) : Peers function to return the PrimaryAlias of the chainID (#2251)

    Signed-off-by: DoTheBestToGetTheBest <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit c174c62
Author: Stephen Buttolph <[email protected]>
Date:   Thu Nov 2 16:20:03 2023 -0400

    Return log levels from admin.SetLoggerLevel (#2250)

commit 20f3580
Author: Stephen Buttolph <[email protected]>
Date:   Wed Nov 1 22:11:47 2023 -0400

    Update versions for v1.10.15 (#2245)

commit 36d1630
Author: Cesar <[email protected]>
Date:   Wed Nov 1 22:44:14 2023 -0300

    Add nullable option to codec (#2171)

    Signed-off-by: Cesar <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>
    Co-authored-by: Dan Laine <[email protected]>

commit 4957ccb
Author: Dan Laine <[email protected]>
Date:   Tue Oct 31 18:38:57 2023 -0400

    Add `pebble` as valid value for `--db-type`. (#2244)

    Signed-off-by: Dan Laine <[email protected]>
    Co-authored-by: Dhruba Basu <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 047d493
Author: Dhruba Basu <[email protected]>
Date:   Tue Oct 31 18:14:14 2023 -0400

    Add `BaseTx` support to platformvm (#2232)

    Signed-off-by: Dhruba Basu <[email protected]>

commit 1f9df8f
Author: Dan Laine <[email protected]>
Date:   Tue Oct 31 17:10:05 2023 -0400

    Remove `database.Manager` (#2239)

    Signed-off-by: Dan Laine <[email protected]>

commit 8d15c22
Author: Stephen Buttolph <[email protected]>
Date:   Tue Oct 31 13:28:49 2023 -0400

    Document host and port behavior in help text (#2236)

commit 76d756f
Author: Joshua Kim <[email protected]>
Date:   Tue Oct 31 11:43:13 2023 -0400

    Remove error from Router AppGossip (#2238)

    Signed-off-by: Joshua Kim <[email protected]>

commit 5b96789
Author: Joshua Kim <[email protected]>
Date:   Mon Oct 30 16:41:51 2023 -0400

    P2P AppRequestFailed protobuf definition (#2111)

    Signed-off-by: Joshua Kim <[email protected]>
    Co-authored-by: Stephen Buttolph <[email protected]>

commit 826f941
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 19:41:19 2023 -0400

    Fix test typos (#2233)

    Signed-off-by: marun <[email protected]>
    Co-authored-by: marun <[email protected]>

commit 66375f5
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 18:44:34 2023 -0400

    Trim down size of secp256k1 `Factory` struct (#2223)

    Signed-off-by: Dhruba Basu <[email protected]>

commit 42d4e3e
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 17:44:38 2023 -0400

    Enable `perfsprint` linter (#2229)

commit b83af9b
Author: Dhruba Basu <[email protected]>
Date:   Fri Oct 27 17:42:03 2023 -0400

    Add `utils.Err` helper (#2212)

    Signed-off-by: Dhruba Basu <[email protected]>

Signed-off-by: Joshua Kim <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cleanup Code quality improvement consensus This involves consensus
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants