Next Article in Journal
A Novel Non-Invasive Technique for Assessing Blood Glucose Concentrations
Previous Article in Journal
A Systematic Review of AI Methods Across the MRI Analysis Pipeline for Multiple Sclerosis Progression Prediction
Previous Article in Special Issue
Blockchain for the eHealth Sector—A Survey and Implementation
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

LB-Louvain: Balancing Transaction Locality and Shard Load in Account-Based State Sharding

1
Sydney Smart Technology College, Northeastern University at Qinhuangdao, Qinhuangdao 066004, China
2
College of Computer Science and Engineering, Northeastern University, Shenyang 110819, China
3
Hebei Key Laboratory of Marine Perception Network and Data Processing, Northeastern University at Qinhuangdao, Qinhuangdao 066004, China
*
Author to whom correspondence should be addressed.
Appl. Sci. 2026, 16(18), 8959; https://doi.org/10.3390/app16188959
Submission received: 16 August 2026 / Revised: 5 September 2026 / Accepted: 8 September 2026 / Published: 9 September 2026
(This article belongs to the Special Issue Advanced Blockchain Technologies and Their Applications)

Featured Application

The proposed method supports adaptive account placement in sharded blockchain systems by coordinating transaction locality with processing-load balance across physical shards.

Abstract

Account-based state sharding improves blockchain parallelism by distributing account states and transaction execution across physical shards, but effective placement must preserve transaction locality without concentrating processing demand on a small number of shards. This paper presents LB-Louvain, a coarse-to-fine account-partitioning heuristic in which standard Louvain first extracts logical communities, followed by load-aware community-to-shard assignment and restricted boundary-account refinement. In controlled BlockEmulator experiments using 300,000 replayed Ethereum transactions and five repeated system runs per configuration, relative to CLPA, the complete LB-Louvain pipeline reduces the mean cross-shard transaction ratio by approximately 2.1%, increases active throughput by approximately 19.7%, and reduces average confirmation latency by approximately 9.4%. Component-wise ablation confirms complementary roles for load-aware assignment and boundary refinement. The evaluated behavior remains stable over β [ 1 , 4 ] , while partition-only profiling keeps the measured partition computation below 100 ms across the tested 50,000–300,000 transaction prefixes and 4–24 physical shards. An auxiliary migration experiment further shows that Fine-Grained activation reduces the observed migration-deferred set by approximately 39.8% relative to Full Locking while maintaining comparable throughput and confirmation latency. Broader archived experiments with Monoxide and CLPA are retained separately from the controlled revision results.

1. Introduction

Blockchain systems require full nodes to validate transactions, execute state transitions, and maintain a replicated ledger. This replication supports decentralized verification, but causes communication, storage, and computation costs to grow with workload [1]. Sharding addresses this bottleneck by dividing network participants, transaction processing, or ledger state among multiple shards operating in parallel [1]. Existing systems apply sharding to different objects: OmniLedger [2] and RapidChain [3] divide network or transaction processing, whereas Chainspace [4] and Monoxide [5] partition objects or account state. This paper focuses on account-based state sharding, in which each account state is assigned to one physical shard. Because the account-to-shard mapping determines both state ownership and transaction routing, effective account placement is essential for exploiting shard-level parallelism without creating persistent workload concentration.
In account-based state sharding, the account-to-shard mapping determines state ownership, transaction routing, and the placement of processing demand. This paper considers the relay-based cross-shard execution model exemplified by Monoxide [5], because a transfer whose sender and recipient reside on different shards requires processing at both participating shards. As shown in Figure 1, the source shard first processes the sender-side update and generates a relay transaction, which is then delivered to the destination shard for verification and recipient-side state update. By contrast, an intra-shard transfer is completed within a single shard.
Account placement therefore directly affects both transaction locality and shard-load distribution. Here, transaction locality means placing frequently interacting accounts in the same shard so that more observed transfers can be processed without cross-shard relaying. This creates a natural tradeoff: grouping active accounts improves locality but may concentrate processing demand on a few shards, whereas dispersing them improves load balance but can increase cross-shard transfers.
Existing studies address this tradeoff mainly through two directions. One direction changes the allocation unit: BrokerChain [6] segments account state and introduces broker accounts to reduce cross-shard processing and workload skew, while Estuary [7] uses state splitting. The other direction exploits transaction relations for graph-based placement. Transformers [8] formulate cross-shard transactions and workload balance as a network-partitioning problem. TxAllo [9] dynamically allocates accounts and transactions under throughput and workload considerations. Han et al. [10] incorporate temporal interaction patterns, whereas Yin et al. [11] consider workload-constrained graph partitioning. ShardCutter [12] further combines community-aware partitioning with account migration. These methods demonstrate the importance of considering locality and load jointly. However, in community-based placement, the number, size, and activity of detected communities are determined by graph structure rather than the configured physical-shard set [13]. Logical communities must therefore still be mapped onto physical shards, and heterogeneous community activity can leave residual load concentration after coarse placement.
To address this challenge, LB-Louvain adopts a coarse-to-fine account-partitioning strategy. Historical Ethereum transfers are aggregated into an undirected weighted account graph, and standard Louvain [13] extracts logical communities with dense observed interactions. LB-Louvain then performs load-aware community-to-shard assignment to disperse highly active communities across physical shards, followed by restricted boundary-account rebalancing to alleviate residual hotspots. The two stages operate at different granularities: community-level placement controls coarse load concentration, while boundary-level adjustment provides fine-grained correction without discarding the interaction structure captured by Louvain.
The main contributions are as follows:
1.
A fixed-shard account-placement formulation that explicitly captures the tradeoff between historical transaction locality and shard-load balance while preserving unique account-to-shard ownership;
2.
LB-Louvain, which addresses this tradeoff through load-aware community-to-shard assignment and restricted boundary-account rebalancing while using standard Louvain to preserve coarse interaction structure;
3.
A multi-level empirical evaluation combining controlled component-wise ablation, parameter and repartitioning-cadence sensitivity, partition-runtime and allocation profiling, and auxiliary migration–activation measurements with broader archived end-to-end comparisons against Monoxide and CLPA.
Under the controlled 300,000-transaction configuration, relative to CLPA, the complete LB-Louvain pipeline reduces the mean cross-shard transaction ratio by approximately 2.1%, increases active throughput by approximately 19.7%, and reduces average confirmation latency by approximately 9.4%. The component-wise ablation confirms complementary roles for load-aware community assignment and boundary-account refinement, while the sensitivity and profiling experiments show stable evaluated behavior over β [ 1 , 4 ] and low partitioning overhead across the tested transaction-prefix and shard-count configurations. The broader end-to-end and migration experiments further show that these partitioning improvements remain effective across different operating conditions and can be applied while limiting transaction disruption during reconfiguration.
The remainder of this paper is organized as follows. Section 2 reviews related account-placement and reconfiguration work. Section 3 defines the account-partitioning problem and its evaluation criteria. Section 4 describes LB-Louvain. Section 5 reports the experimental evaluation and discussion, and Section 6 concludes the paper.

2. Related Work

To examine account placement under the locality–load tradeoff, this section reviews existing work from two perspectives: the definition of the placement unit and the use of transaction or workload information to guide placement. Account-placement methods differ chiefly in allocation unit and workload information. Monoxide [5] maps account addresses through deterministic bits, enabling simple location lookup but not adapting to observed transaction relationships. BrokerChain [6] changes the placement unit through account segmentation and broker-assisted execution, while Estuary [7] splits account state and ABChain [14] combines balanced partitioning with adaptive brokers. These approaches reduce cross-shard processing through deterministic placement, broker assistance, or state splitting, but they differ in whether complete accounts remain the basic placement unit. LB-Louvain retains complete accounts and changes only their physical-shard assignments according to observed transaction activity.
Graph-based methods use transaction history to guide account allocation and are therefore the closest to the setting considered in this work. Transformers [8], whose community-aware partitioning method is used as the CLPA baseline in our evaluation, formulates cross-shard activity and workload balance as a network-partitioning problem. TxAllo [9] dynamically allocates accounts and transactions while jointly considering throughput, cross-shard activity, and workload balance. Han et al. [10] model historical interactions with a transaction hypergraph, whereas Yin et al. [11] impose shard-workload constraints on graph-based state partitioning. ShardCutter [12] further integrates community-aware partitioning with state migration. These studies establish transaction locality and workload balance as two closely coupled objectives and motivate a placement mechanism that coordinates them when logical communities must be mapped onto a fixed set of physical shards.
Standard Louvain produces logical communities whose number, size, and activity are determined by graph structure rather than by a prescribed physical-shard count [13]. Consequently, community detection alone does not determine how the extracted communities should be placed on a fixed set of physical shards, while heterogeneous community activity may still produce workload concentration after coarse placement. This leads to a specific placement problem: how to preserve the coarse interaction structure captured by community detection while distributing processing demand across the configured physical shards. LB-Louvain addresses this problem through a coarse-to-fine design that retains logical communities as locality-preserving placement units, assigns them to physical shards according to estimated shard load, and then restricts account-level correction to boundary accounts associated with observed cross-shard relationships. The component-wise evaluation in Section 5 isolates the effects of these two proposed refinement stages.
Other systems optimize adjacent placement and reconfiguration decisions. OptChain [15] performs online transaction placement, Shard Scheduler [16] jointly controls object placement and migration, and LB-Chain [17] performs load-driven account migration. Tao et al. [18] organize dynamic shards around smart contracts and use inter-shard merging to reduce cross-shard communication. Meepo [19] and Aeolus [20] focus on permissioned state execution, while SkyChain [21] and MetaShard [22] operate as broader system-level sharding controllers. These studies demonstrate that sharding performance can be improved at multiple control levels, but their decision variables differ from fixed-shard placement of complete accounts. For community-based account partitioning, standard Louvain [13] returns logical communities according to graph structure; neither the number nor the activity of these communities is constrained by the configured physical-shard set. Directly using community labels as shard identifiers can therefore leave shards underused or concentrate active communities, whereas unrestricted account-level reassignment can weaken the coarse interaction structure. This motivates separating logical-community extraction from physical-shard placement and retaining limited boundary-level adjustment for residual load concentration.
When an account-to-shard mapping changes, the corresponding state must be relocated before the new mapping can take effect. tMPT [23] studies cross-shard reconfiguration through a trimmed Merkle Patricia Trie, while the fine-tuned lock mechanism [24] reduces blocking during account migration. These studies complement account-placement methods by addressing the activation of an already determined mapping. Section 3 next formalizes the account-partitioning problem and its evaluation criteria.

3. Account-Partitioning Problem Definition

This section defines the account-partitioning problem addressed by LB-Louvain. Recent transaction activity is represented as a weighted account graph, from which transaction locality and shard load are measured.

3.1. Account Mapping and Transaction Classification

Let V = { v 1 , v 2 , , v N } denote the account set and S = { s 1 , s 2 , , s K } the fixed set of physical shards. An account-to-shard mapping P assigns each account to one physical shard. For shard s k , its account set V k is defined as
P : V S , V k = { v i V P ( v i ) = s k } .
Under the mapping in Equation (1), each account belongs to exactly one physical shard.
A transfer transaction is denoted by t x = ( v i , v j ) , where v i and v j are the sender and recipient, respectively. Its type under mapping P is defined as
type ( t x ) = intra , P ( v i ) = P ( v j ) , cross , P ( v i ) P ( v j ) .
According to Equation (2), whether a transaction is intra-shard or cross-shard depends on the account mapping. An intra-shard transaction is processed within one shard, whereas a relay-based cross-shard transaction involves processing at both the source and destination shards [5]. This distinction is used below to assign different load contributions to the two transaction types.

3.2. Weighted Account Transaction Graph

Let T H denote the set of transactions observed during the current historical partitioning window. LB-Louvain treats T H as a retrospective workload signal: the graph, locality metric, and shard-load estimates characterize the interactions observed in that window and do not predict future transaction activity. The historical window is assumed to contain at least one transaction. Accounts that first appear in a later window contribute to the reconstructed interaction graph only from the first window in which they are observed; no future activity is inferred before that observation. These transactions are aggregated into an undirected weighted account transaction graph G = ( V , E , W ) . An edge e i j = ( v i , v j ) exists when at least one transaction between v i and v j appears in T H . Let T i j H denote the corresponding transaction subset. The graph and edge weights are defined as
G = ( V , E , W ) , E = { ( v i , v j ) | T i j H | > 0 } , w i j = | T i j H | .
In Equation (3), the set W contains all edge weights. Each original transfer retains a sender and a recipient during execution, but the partitioning graph deliberately aggregates the two directions of an account pair into a single undirected weight w i j . The resulting weight therefore represents historical interaction frequency rather than a directional traffic rate. This representation is consistent with the locality objective introduced below, for which placing two frequently interacting accounts on the same shard removes relay processing regardless of which endpoint acted as sender in an individual transfer.
The undirected representation does not imply that sender and recipient roles are interchangeable during execution. Direction-specific access roles and asymmetric sender/recipient behavior are not modeled explicitly by the current partitioning graph; instead, their observed interaction volume is collapsed into the pairwise weight used for community extraction and placement. Extending the load model to a directed or role-aware transaction graph would require reformulating the graph statistics and the corresponding placement cost, and is therefore left outside the present method. The resulting weighted graph provides the input representation used by the account-partitioning procedure in Section 4.

3.3. Partitioning Metrics and Problem Statement

Let x i k be a binary assignment variable indicating whether account v i is assigned to shard s k :
x i k = 1 , P ( v i ) = s k , 0 , P ( v i ) s k , k = 1 K x i k = 1 , x i k { 0 , 1 } , v i V .
Equation (4) ensures that no account is unassigned or simultaneously assigned to multiple physical shards.
Under mapping P, the weighted number of cross-shard transactions and the corresponding cross-shard transaction ratio are
C ( P ) = ( v i , v j ) E w i j I P ( v i ) P ( v j ) , CTR ( P ) = C ( P ) ( v i , v j ) E w i j .
In Equation (5), I [ · ] is the indicator function. C ( P ) accumulates the weights of the transaction edges cut by the mapping, while CTR ( P ) normalizes this quantity by the total observed transaction weight. A smaller CTR ( P ) indicates that more historical transactions can be processed within individual shards.
To distinguish the processing costs of intra-shard and cross-shard transactions, the two types of load are calculated separately. For shard s k , the intra-shard load and cross-shard load are defined as
In k ( P ) = ( v i , v j ) E w i j I P ( v i ) = s k P ( v j ) = s k , Ex k ( P ) = ( v i , v j ) E w i j · I ( P ( v i ) = s k P ( v j ) s k ) ( P ( v j ) = s k P ( v i ) s k ) .
After the two load components are defined in Equation (6), the estimated load of shard s k and the average shard load are defined as
L k ( P ) = In k ( P ) + β Ex k ( P ) , L ¯ ( P ) = 1 K k = 1 K L k ( P ) .
In Equation (7), β > 0 is the cross-shard load coefficient used to weight the relative processing contribution of cross-shard transactions in the shard-load estimate. An intra-shard edge of weight w i j contributes w i j to the load of the shard containing both endpoints, whereas a cross-shard edge contributes β w i j to each of its two participating shards through Ex k ( P ) . Thus, when shard loads are aggregated, a cross-shard edge contributes 2 β w i j , while an intra-shard edge contributes w i j . The coefficient β is an implementation-level relative cost weight rather than an independently measured network-delay or hardware-cost ratio. Unless varied explicitly, the controlled experiments use β = 2.0 , and Section 5.3 evaluates sensitivity over β { 1.0 , 1.5 , 2.0 , 3.0 , 4.0 } .
Shard-load imbalance is characterized by   
D ( P ) = 1 K k = 1 K L k ( P ) L ¯ ( P ) 2 , L max ( P ) = max 1 k K L k ( P ) .
In Equation (8), D ( P ) measures load dispersion across all physical shards, whereas L max ( P ) identifies the shard with the highest estimated load. The normalized load dispersion D ( P ) / L ¯ ( P ) avoids direct dependence on the overall transaction volume, while L max ( P ) serves as a complementary indicator of hot-shard concentration.
The quality of a feasible account mapping is characterized by the following criterion vector:
J ( P ) = CTR ( P ) , D ( P ) L ¯ ( P ) , P F , F = { P : V S P satisfies ( 4 ) } .
For the criterion vector in Equation (9), smaller values of the first and second components indicate better historical transaction locality and a more balanced shard-load distribution, respectively.

4. LB-Louvain: Load-Balanced Account Partitioning

4.1. Design Overview

This section presents LB-Louvain, which transforms the weighted account transaction graph defined in Section 3 into a feasible account-to-shard mapping. Equation (9) evaluates feasible mappings using transaction locality and normalized shard-load dispersion. Exhaustively examining account-level assignments is impractical: mapping N accounts to K shards yields K N candidate mappings, while changing an assignment may improve one criterion but worsen the other. Using a fixed weighted sum of the two criteria in J ( P ) would also require choosing an additional cross-objective tradeoff coefficient in advance.
LB-Louvain therefore reduces the decision granularity step by step. First, standard Louvain groups accounts with dense weighted interactions, preserving high-frequency relations at the community level. However, the number and activity of communities need not match the K physical shards, so the second stage assigns communities according to current shard loads. Keeping communities intact preserves their internal interaction structure but can leave residual hotspots; therefore, the third stage considers only boundary accounts and accepts movements that reduce the local source–destination maximum load. Community extraction thus supports the locality criterion in (9), while load-aware placement and restricted refinement provide tractable decisions for improving shard-load balance.
Figure 2 summarizes the procedure: the historical transaction graph is converted into logical communities, the communities are mapped to physical shards in nonincreasing activity order, and boundary accounts are then examined for load-reducing movements to obtain the target mapping P new .

4.2. Louvain-Based Community Extraction

The first stage applies standard Louvain to the weighted account graph G = ( V , E , W ) . Each account initially forms an individual community. Louvain then groups accounts whose weighted transaction relationships are denser within communities than expected under a degree-preserving baseline. Following Blondel et al. [13], the modularity of the undirected weighted graph defined in (3) is given by   
Q = 1 2 m v i , v j V w i j d i d j 2 m δ ( c i , c j ) , d i = v j V w i j , 2 m = v i V d i .
In Equation (10), w i j = 0 when ( v i , v j ) E , d i is the weighted degree of account v i , c i is its community label, and  δ ( c i , c j ) equals one when v i and v j have the same community label and zero otherwise. LB-Louvain adopts this standard modularity objective without changing the internal local-moving or community-aggregation rules of Louvain.
During local moving, an account is tentatively assigned to its neighboring communities, and the movement producing the largest positive modularity gain is retained. When no further positive movement is available, the accounts belonging to the same community are aggregated into a supernode. The local-moving and aggregation operations are repeated until further aggregation no longer increases modularity.
The resulting logical-community set is
C = { C 1 , C 2 , , C R } , r = 1 R C r = V , C a C b = for a b .
In Equation (11), R is determined by the transaction graph and generally differs from the number K of physical shards. Consequently, the community labels cannot be used directly as physical-shard identifiers. A separate community-to-shard assignment is required to transform the logical communities into a valid account mapping.
The modularity objective primarily captures transaction locality and does not directly optimize shard-load distribution. Therefore, standard Louvain is used only for logical-community extraction, while load-aware physical placement is performed in the following stage.

4.3. Load-Aware Community-to-Shard Assignment

The second stage treats each detected community as an indivisible coarse-grained placement unit. A community-to-shard mapping ϕ : C S is constructed, allowing multiple logical communities to be assigned to the same physical shard. Keeping communities intact during this stage avoids prematurely separating accounts whose historical transaction relationships have been identified as locally dense.
Let ( C r ) denote the weighted activity of community C r . It is calculated from the weighted degrees of its accounts. The communities are processed in nonincreasing activity order:   
( C r ) = v i C r d i , ( C ( 1 ) ) ( C ( 2 ) ) ( C ( R ) ) .
The activity estimate in (12) is used only to determine the processing order. It is independent of physical-shard placement and therefore does not classify an inter-community edge as a cross-shard edge before the endpoint communities have been assigned. The actual shard loads are calculated using the different intra-shard and cross-shard contributions defined in (6) and (7).
Processing highly active communities first reduces the possibility that several large communities will be concentrated on the same physical shard. Let
q = min ( R , K ) .
The first q communities are assigned to different physical shards. If  R < K , each community is assigned to one shard and the remaining shards are temporarily empty. If  R K , the first K communities are used to initialize the K physical shards.
Let L ^ k denote the current estimated load maintained for shard s k during sequential community placement. After the initial assignment, each remaining community is mapped to the currently least-loaded shard:
ϕ ( C ( r ) ) arg min s k S L ^ k , r > q .
For the placement rule in Equation (13), ties among equally loaded candidate shards are resolved under the deterministic execution mode used in the experiments, without introducing an additional optimization objective. Therefore, the selected mapping may depend on the deterministic community-processing order and tie resolution when multiple placements satisfy the same least-loaded-shard criterion; uniqueness of the resulting mapping is not claimed. After community C ( r ) is assigned, the affected intra-shard load In k , cross-shard load Ex k , and total load L k are updated according to (6) and (7).
Inter-community transaction relationships are retained during this update. When the endpoint communities of an inter-community edge are assigned to the same physical shard, the edge weight contributes to the corresponding intra-shard load. When they are assigned to different physical shards, the edge weight contributes to the cross-shard load of each involved shard. Edges involving an unassigned community are incorporated once the placements of both endpoint communities become known. Therefore, the assignment procedure accounts for the processing of a cross-shard transaction at both participating shards.
The community assignment is expanded into the initial account mapping as
P ( 0 ) ( v i ) = ϕ ( C r ) , v i C r , C r C .
The mapping in Equation (14) expands the community assignment to all accounts. Because the communities in (11) form a disjoint partition of V, the resulting mapping P ( 0 ) satisfies the unique-assignment constraint in (4).
Algorithm 1 disperses highly active communities before assigning the remaining communities to currently lighter shards. However, because every community remains intact during coarse-grained placement, a single highly active community or the accumulated load of several communities may still produce a residual hotspot. The initial mapping P ( 0 ) is therefore passed to boundary-account rebalancing.
Algorithm 1 Load-Aware Community-to-Shard Assignment
Input: Weighted graph G = ( V , E , W ) ; community set C = { C 1 , , C R } ; physical-shard set S = { s 1 , , s K } .
Output: Initial mapping P ( 0 ) ; estimated shard loads { L ^ 1 , , L ^ K } .
 1: Compute ( C r ) for every C r C .
 2: Order C ( 1 ) , , C ( R ) according to (12).
 3: Set P ( 0 ) ( v i ) as undefined for every v i V .
 4: for each  s k S , initialize V k , In k 0 , Ex k 0 , and L ^ k 0 .
 5: Set q min ( R , K ) .
 6: for  r 1  to q do
 7:      ϕ ( C ( r ) ) s r .
 8:     Set P ( 0 ) ( v i ) s r for every v i C ( r ) .
 9:     Update affected In k , Ex k , and L ^ k using (6) and (7).
10: end for.
11: for  r q + 1  to R do
12:     Select s k arg min s j S L ^ j .
13:      ϕ ( C ( r ) ) s k .
14:     Set P ( 0 ) ( v i ) s k for every v i C ( r ) .
15:    Update affected In k , Ex k , and L ^ k using (6) and (7).
16: end for.
17: return  P ( 0 ) and  { L ^ 1 , , L ^ K } .

4.4. Boundary-Account Rebalancing

The third stage performs restricted account-level refinement. It considers only accounts whose transaction neighbors are distributed across different physical shards. This restriction provides finer load-adjustment capability without allowing arbitrary movements to unrelated shards.
For account v i , let N ( v i ) denote its transaction neighbors. The boundary-account set under mapping P is
N ( v i ) = { v j V ( v i , v j ) E } , B ( P ) = { v i V v j N ( v i ) , P ( v j ) P ( v i ) } .
The boundary set in Equation (15) depends on the current mapping and may change after an accepted movement. For each v i B ( P ) , candidate destinations are restricted to the distinct shards hosting its external neighbors:
N S ( v i ; P ) = { P ( v j ) S v j N ( v i ) , P ( v j ) P ( v i ) } .
The restriction in Equation (16) ensures that each candidate shard has an observed transaction relationship with v i . Moving an account to an unrelated shard is not considered because such a movement has no locality basis and may unnecessarily increase cross-shard processing.
Suppose v i currently belongs to source shard s a = P ( v i ) , and  s b N S ( v i ; P ) is a candidate destination. Let P i b denote the trial mapping obtained by assigning only v i to s b . The source and destination loads before and after the trial movement are evaluated using (6) and (7). The reduction in their local maximum load is
L i , b old = max { L a ( P ) , L b ( P ) } , L i , b new = max { L a ( P i b ) , L b ( P i b ) } , Δ L i , b = L i , b old L i , b new .
When evaluating Equation (17), all weighted edges incident to v i are reclassified under the trial mapping. An edge that changes from intra-shard to cross-shard is incorporated into the updated Ex k , while an edge that changes from cross-shard to intra-shard is incorporated into the updated In k . Because a cross-shard edge contributes to the loads of both participating shards under (7), both newly created and removed cross-shard relationships affect Δ L i , b .
A positive Δ L i , b indicates that the movement reduces the local maximum load of the source–destination shard pair. If several candidates produce a positive reduction, the candidate with the largest load improvement is selected:
s i arg max s b N S ( v i ; P ) Δ L i , b > 0 Δ L i , b .
Under the selection rule in Equation (18), if no candidate produces a positive gain, v i remains on its current shard. The acceptance rule is load-oriented and does not impose an additional requirement that every accepted movement monotonically reduce the global CTR ( P ) . Instead, changes in cross-shard processing are incorporated into both the source- and destination-shard loads through Ex k ( P ) . This design is consistent with the staged operation of LB-Louvain: Louvain-based community extraction primarily preserves locality, whereas boundary refinement alleviates residual load concentration.
Each accepted movement replaces the current shard identifier of one account with another valid shard identifier. Therefore, Algorithm 2 preserves the unique-assignment constraint in (4). Candidate destinations are restricted to neighbor shards, keeping each refinement step tied to observed transaction relationships while limiting the adjustment scope. Together with the preceding community-level placement, these local movements provide fine-grained correction for residual load concentration.
Boundary refinement is implemented as an iterative local-improvement procedure. Account movements are evaluated according to their effect on the maximum load of the involved source–destination shard pair, while candidate destinations remain restricted to shards connected through observed transaction relationships. This design keeps the refinement focused on residual load concentration without discarding the locality structure established by the preceding community-level placement. Account-processing order and deterministic tie resolution determine the sequence of local improvements, yielding a tractable procedure for constructing the final feasible account mapping.
In the implementation used for the experiments, boundary refinement is organized into repeated passes. The procedure terminates when a complete refinement pass accepts no account movement, while a maximum of 70 passes is imposed as a finite implementation safeguard. This stopping rule combines an adaptive no-movement condition with a fixed upper bound on refinement effort.
Algorithms 1 and 2 construct the target account mapping only. They do not perform account-state transfer or change the active account locations during partition computation.

4.5. Complexity Analysis

The computational cost is decomposed according to the stages described above. Aggregating the historical transaction window requires O ( | T H | ) time and produces an account graph stored in O ( | V | + | E | ) space. If standard Louvain [13] performs r 1 edge-processing passes across its levels, its implementation-oriented time complexity is O ( r 1 | E | ) . Computing the weighted community statistics requires one additional scan of the graph, while ordering the R communities requires O ( R log R ) time.
During Algorithm 1, selecting the currently least-loaded shard requires scanning at most K shard loads for each community, resulting in O ( R K ) time. The intra-shard and cross-shard statistics are updated incrementally as community placements become known.
Algorithm 2 Boundary-Account Rebalancing
Input: Weighted graph G = ( V , E , W ) ; initial mapping P ( 0 ) ; physical-shard set S; current shard loads { L 1 , , L K } .
Output: Target mapping P new .
 1: P P ( 0 )
 2: Set needCheck [ v i ] true for every v i V
 3: while there exists v i V with needCheck [ v i ] = true  do
 4:     Select one such account v i
 5:      needCheck [ v i ] false
 6:      s a P ( v i )
 7:      S cand N S ( v i ; P )
 8:      s i s a ; bestGain 0
 9:     for each  s b S cand  do
10:        Construct the trial mapping P i b
11:        Reclassify the weighted edges incident to v i
12:        Compute tentative source and destination loads using (6) and (7)
13:        Compute Δ L i , b using (17)
14:        if  Δ L i , b > bestGain  then
15:             bestGain Δ L i , b
16:             s i s b
17:        end if
18:     end for
19:     if  s i s a  then
20:         P ( v i ) s i
21:        Update the affected shard loads and account sets
22:        Set needCheck [ v j ] true for every v j N ( v i )
23:     end if
24: end while
25:  P new P
26: return  P new
During Algorithm 2, candidate shards are obtained from the transaction neighbors of each boundary account, and the affected weighted edges are processed to evaluate the source and destination loads. If boundary refinement performs r 2 effective edge-processing passes, its implementation-oriented time complexity is estimated as O ( r 2 | E | ) . Therefore, the overall time complexity is
O | T H | + r 1 | E | + R log R + R K + r 2 | E | .
The additional storage consists of community labels and statistics, the account-to-shard mapping, shard-load records, and the boundary-account worklist. Excluding the input graph, these data require O ( | V | + R + K ) space. The iteration counts r 1 and r 2 depend on the graph structure and the sequence of accepted movements. In the evaluated prototype, boundary refinement is additionally capped at 70 passes as described above; this implementation cap does not change the stage-wise complexity decomposition in (19). Therefore, (19) is an implementation-oriented estimate rather than a strict real-time bound or an asymptotic scalability claim.

5. Experimental Evaluation and Discussion

This section evaluates LB-Louvain in terms of partition quality, shard-level queue balance, and end-to-end execution under replayed Ethereum transfer workloads. A separate Transaction-Aware Activation experiment evaluates the application of the generated target mapping.

5.1. Experimental Setup and Reproducibility

The revised evaluation distinguishes the controlled revision experiments from the archived experiments reported in the original submission. The controlled experiments were conducted on BlockEmulator [25] under Windows 11 using Go 1.19.13. The host was equipped with an Intel Core i9-14900HX processor (24 physical cores and 32 logical processors) and 31.73 GB of memory. Unless otherwise stated, the controlled configuration used four physical shards with four PBFT [26] nodes per shard, a block interval of 5 s, a transaction-count block capacity of 2000 transactions, a PBFT timeout of 20,000 ms, a transaction batch size of 16,000, an injection rate of 1500 TXs/s, and a repartitioning interval of 50 s. The configured Bandwidth parameter was 10,000,000; we report the configuration value directly rather than reinterpret it as an independently measured network throughput.
The controlled experiments use the selectedTxs_300K.csv workload distributed with the open-source BlockEmulator project. The file contains 300,000 selected historical Ethereum transactions and is identified by SHA-256 checksum 12297773F5F3E04E4631315D56A86001C43BA3CA001C3C84EFCC923F06CA63BF. BlockEmulator describes this workload as being derived from historical Ethereum transactions available from XBlock-ETH [27]; however, the upstream project does not provide the original selection procedure, Ethereum block-number range, or date range for this prepackaged dataset. We therefore report the exact distributed workload and checksum rather than infer unavailable upstream provenance metadata. For the full 300,000-transaction controlled workload, the graph constructed according to Equation (3) contains 54,403 unique accounts and 64,378 undirected weighted account-pair edges, and standard Louvain yields 2,968 logical communities under the deterministic controlled configuration. Within the partitioning pipeline, repeated transfers between the same unordered account pair are aggregated into the edge weight w i j defined in Equation (3).
Each formal controlled configuration is executed five times as an independent system run under identical settings. We report the mean, sample standard deviation, and 95% confidence interval based on these five runs. The partitioning path uses the deterministic execution mode for a fixed input and configuration; therefore, these repetitions are repeated system executions rather than different algorithmic random seeds or independently sampled transaction traces. Variation across repetitions consequently reflects system-level execution variability under the same partitioning input and configuration. For the component ablation, M0 consists of standard Louvain followed by deterministic non-load-aware community placement with boundary refinement disabled; M1 adds the proposed load-aware community-to-shard assignment; and M2 denotes the complete LB-Louvain pipeline. Unless varied explicitly, the cross-shard load coefficient is set to β = 2.0 . The boundary-refinement stage terminates when a complete pass accepts no account movement or when the implementation cap of 70 iterations is reached. The standard Louvain community-extraction stage is used without changing its modularity objective or local-moving rule; the LB-Louvain-specific processing begins with the subsequent community-to-shard assignment and boundary-account refinement.
The archived experiments from the original submission were executed on a different testbed (Ubuntu 20.04, Intel Core i5-13600KF, and 32 GB memory) and span multiple workload sizes, arrival rates, and shard-count configurations. We therefore organize the evaluation into two complementary evidence sets: the new five-run controlled experiments provide repeated measurements under a unified revision configuration, while the archived experiments preserve broader coverage across arrival rates and shard counts.
The underlying BlockEmulator platform is publicly available [25]. The modified LB-Louvain implementation used for the present experiments is not publicly released; accordingly, the manuscript reports the evaluated workload checksum, controlled configuration, algorithm variants, and experimental repetition policy explicitly rather than implying public availability of the modified code.
Additional controlled numerical comparisons are limited to CLPA, for which a compatible runnable implementation is available in the evaluated BlockEmulator framework. Monoxide is retained in the archived evidence, while TxAllo, ShardCutter, and workload-constrained alternatives are compared at the mechanism level in Section 2 because compatible implementations were not available in the evaluated codebase.
Table 1 summarizes the default controlled configuration and the parameters varied in the reviewer-driven experiments.

5.2. Controlled Baseline and Component Ablation

To isolate the contributions of the two LB-Louvain refinement stages, we conduct a controlled component-wise ablation together with the native CLPA baseline. All configurations use the same 300,000-transaction replay workload, an injection rate of 1500 TXs/s, four physical shards with four PBFT nodes per shard, and a 50 s repartitioning interval. Each configuration is independently repeated five times under identical settings. M0 uses standard Louvain followed by deterministic non-load-aware community-to-shard placement, with boundary refinement disabled. M1 adds the proposed load-aware community-to-shard assignment to M0, while M2 denotes the complete LB-Louvain pipeline with both load-aware assignment and boundary-account refinement.
Figure 3 first compares the complete LB-Louvain pipeline with CLPA under the controlled configuration. At the level of the five-run means, M2 reduces the cross-shard transaction ratio from 0.3322 for CLPA to 0.3252, while increasing active throughput from 1039.4 to 1244.6 TXs/s. The corresponding average confirmation latency decreases from 41.08 to 37.23 s, and the peak shard-queue standard deviation decreases from 12,724.7 to 7693.9 transactions. These differences are interpreted descriptively under the evaluated workload; no statistical-significance claim is made.
The component-wise comparison further clarifies the roles of the two proposed refinement stages. Relative to M0, M1 increases active throughput by approximately 1.84% and reduces the peak shard-queue standard deviation by approximately 12.53%, while the cross-shard transaction ratio increases by approximately 0.73%. This pattern is consistent with Stage 2 prioritizing load-aware community placement at a small locality cost. Relative to M1, M2 reduces the cross-shard transaction ratio by approximately 0.92%, whereas the peak queue standard deviation changes by only approximately 0.46% and active throughput by approximately 0.42%. Thus, Stage 3 primarily recovers transaction locality while preserving the load-balance improvement obtained by Stage 2, confirming the complementary roles of coarse community placement and fine-grained boundary refinement.

5.3. Sensitivity to the Load Coefficient and Repartitioning Interval

We next examine whether the observed behavior of the complete LB-Louvain pipeline is sensitive to the cross-shard load coefficient β and to the repartitioning interval. For the coefficient experiment, M2 is fixed and only β is varied over { 1.0 , 1.5 , 2.0 , 3.0 , 4.0 } . For the interval experiment, M2 and β = 2.0 are fixed while the configured repartitioning interval is varied among 25, 50, and 100 s. Each setting is repeated five times under the controlled configuration described in Section 5.1. The corresponding sensitivity results are shown in Figure 4.
Across β [ 1 , 4 ] , the mean cross-shard transaction ratio remains within a narrow range of 0.3199–0.3245, while the peak shard-queue standard deviation ranges from approximately 7532 to 7704 transactions. The evaluated values therefore show no sharp degradation over this coefficient range, supporting β = 2.0 as a representative default operating point for the subsequent controlled experiments.
The repartitioning-interval experiment exposes a clearer tradeoff. Reducing the interval from 100 to 50 and 25 s decreases the mean confirmation latency from 51.30 to 37.58 and 24.49 s, respectively, but increases the fraction of the experiment span spent in reconfiguration from 6.08% to 11.45% and 21.51%. Because the same implementation parameter controls both interaction-history accumulation and repartitioning cadence, these results reflect their combined effect. When inter-reconfiguration gaps are included, the corresponding effective throughputs are approximately 1050.4, 1069.1, and 1050.2 TXs/s for the 100, 50, and 25 s settings, respectively. Accordingly, the 50 s interval provides a practical operating point that balances adaptation frequency with reconfiguration overhead under the evaluated configuration.
To characterize whether the interaction structure itself changes across the replay trace, we additionally divide the 300,000-transaction workload into contiguous non-overlapping segments and compare consecutive account and interaction sets. For 50,000-transaction segments, the mean account-set Jaccard similarity between consecutive segments is 0.4771 and the corresponding mean undirected-edge Jaccard similarity is 0.4521; on average, 7855 accounts in a segment were not present in the immediately preceding segment. Using 100,000-transaction segments gives mean account- and edge-set Jaccard similarities of 0.4301 and 0.4081, respectively, with an average of 11,757 newly observed accounts relative to the preceding segment. These diagnostics confirm substantial workload turnover in the replayed trace and motivate periodic reconstruction of the account-interaction graph rather than treating one historical partition as permanently representative.
We further construct a controlled abrupt-shift stress workload from two maximally dissimilar real contiguous 50,000-transaction segments of the same trace. The first segment is replayed for the first 150,000 logical transactions and the second for the remaining 150,000 transactions, creating a single workload-regime change while keeping M2 and β = 2.0 fixed. Under this stress input, the 25, 50, and 100 s repartitioning settings yield whole-run mean cross-shard transaction ratios of 0.2153, 0.2658, and 0.3775 and mean confirmation latencies of 20.64, 31.54, and 50.22 s, respectively. The corresponding reconfiguration-time shares are 21.21%, 11.89%, and 5.59%. Thus, the same adaptation–overhead tradeoff remains visible under an abrupt regime change: more frequent rebuilding tracks the changed interaction structure more closely but consumes a larger fraction of execution time in reconfiguration. Because this workload is a controlled stress construction from two segments of the same historical trace rather than an independent trace, and because epoch boundaries do not provide a precise wall-clock recovery marker, we report whole-run behavior and do not claim a specific recovery time after the shift.

5.4. Controlled Partition-Runtime and Allocation Profile

To complement the theoretical complexity analysis with implementation-level measurements, we profile the complete LB-Louvain partitioning pipeline under the controlled revision environment. The profiling experiment fixes M2 and β = 2.0 and varies the replayed-transaction prefix and the number of physical shards. Each configuration is executed five times under identical deterministic inputs. This experiment isolates the partitioning procedure itself and therefore does not include PBFT execution, state migration, network transfer, or end-to-end transaction processing.
With four physical shards fixed, increasing the replayed-transaction prefix from 50,000 to 300,000 increases the mean partition time from 17.32 to 55.26 ms. Over the same range, the measured total allocation delta increases from 14.12 to 36.93 MiB. At the largest evaluated prefix of 300,000 transactions, increasing the number of physical shards from 4 to 24 raises the mean partition time from 55.26 to 91.02 ms and the total allocation delta from 36.93 to 136.71 MiB.
Across all evaluated combinations of 50,000–300,000 replayed transactions and 4–24 physical shards, the observed partition time remains below 100 ms. This is substantially shorter than the default 50 s repartitioning interval used in the controlled system experiments, indicating that partition computation contributes only a small portion of the reconfiguration cycle under the evaluated settings. The profiling results therefore characterize the practical implementation cost of LB-Louvain across the tested workload and shard-count ranges, complementing the end-to-end reconfiguration measurements reported separately below. These measurements are summarized in Figure 5.

5.5. Archived End-to-End Throughput and Confirmation Latency

Figure 6 retains the end-to-end performance measurements reported in the original submission. These archived measurements were obtained on the earlier Ubuntu-based testbed described in Section 5.1 and are reported separately from the new five-run controlled revision experiments. They are retained to characterize the previously observed behavior across transaction arrival rates and shard counts, rather than to provide the statistical-confidence evidence used in the controlled comparisons above.
Under the fixed-eight-shard archived experiment in Figure 6a, increasing the transaction arrival rate to 2500 TXs/s yields confirmed throughputs of 1732 TPS for LB-Louvain, 1610 TPS for CLPA, and 876 TPS for Monoxide. The corresponding descriptive improvements of LB-Louvain are 7.6% relative to CLPA and 97.7% relative to Monoxide. At lower arrival rates, the performance differences are smaller, whereas the separation becomes larger under heavier offered load. This ordering is consistent with the combined effects of cross-shard relay processing and shard-level queue concentration, but the archived measurements do not isolate a numerical contribution from either effect.
The corresponding archived confirmation-latency measurements in Figure 6b show the same ordering. At 2500 TXs/s with eight shards, LB-Louvain records 49 s, compared with 54 s for CLPA and 152 s for Monoxide. Using the underlying unrounded measurement for the Monoxide comparison gives the previously reported 67.5% reduction, while the displayed values correspond to a 9.3% reduction relative to CLPA.
These latency and throughput observations are qualitatively consistent with lower relay demand and less concentrated transaction queues. However, the archived experiment and the controlled revision experiments were executed on different testbeds and are therefore not pooled, averaged, or compared statistically. In particular, the archived Figure 6 is not used to support the five-run confidence intervals reported in Figure 3 and Figure 4. Its role is to preserve the broader operating-point evidence from the original evaluation while the controlled revision experiments provide the reproducible statistical comparisons.

5.6. Archived Sensitivity to Shard Count and Arrival Rate

The remaining panels of Figure 6 retain the archived operating-point sweep across physical-shard counts and paired arrival-rate/shard-count settings. These measurements complement the controlled revision experiments, but they are interpreted descriptively because they were collected on the earlier testbed and do not constitute the new five-run scalability experiment.
In Figure 6c,d, the transaction arrival rate is fixed at 1500 TXs/s while the number of physical shards is varied. The archived LB-Louvain throughput increases from 932 TPS at four shards to 1234 TPS at 18 shards; at 18 shards, CLPA and Monoxide record 1175 and 1083 TPS, respectively. The increase is not linear, and these measurements neither identify 18 shards as an optimum nor imply linear system scaling. Relay processing, workload skew, block capacity, and the fixed emulator configuration jointly influence the observed end-to-end behavior.
Figure 6e,f further report archived measurements under paired arrival-rate and shard-count configurations. Under the [ 1000 , 4 ] configuration, LB-Louvain records 999 TPS, corresponding to the previously reported descriptive improvements of 9.9% over CLPA and 92.3% over Monoxide. Under  [ 2500 , 24 ] , the throughputs are 2014, 1786, and 1651 TPS for LB-Louvain, CLPA, and Monoxide, respectively. The corresponding archived latency measurements maintain the same overall ordering; under [ 2500 , 24 ] , the reported values are 9, 10, and 25 s, respectively.
The relative performance separation is therefore configuration-dependent rather than constant. These archived measurements show that the previously observed ordering is not confined to a single arrival rate or shard count, but they do not establish statistical confidence for the unreplicated operating points or predict behavior outside the evaluated configurations. Controlled partitioning-runtime and cumulative-allocation behavior are evaluated separately in the preceding controlled profiling experiment on the revision testbed.

5.7. Controlled Transaction-Aware Activation and Migration Overhead

We further evaluate how the target mapping produced by LB-Louvain is applied during state migration. This auxiliary experiment compares three activation modes under the controlled revision configuration: Fine-Grained activation (FG), Full Locking (FL), and Stop-the-World activation (STW). Each mode is independently executed five times with 300,000 replayed transactions, an injection rate of 1500 TXs/s, four physical shards, four PBFT nodes per shard, and a 50 s repartitioning interval. The partitioning method is fixed to the complete LB-Louvain pipeline with β = 2.0 .
Fine-Grained activation is an auxiliary implementation mechanism for applying the mapping produced by LB-Louvain rather than an additional account-partitioning stage. Before cutover, it establishes a migration fence for accounts whose shard assignments change. Transactions involving those accounts are deferred; late affected ordinary or relay transactions observed across cutover are deferred or rerouted against the updated mapping after state installation, while transactions unrelated to migrating accounts remain eligible for processing. The present evaluation characterizes this normal-execution path; fault injection involving Byzantine behavior, arbitrary process or leader failures, or interrupted state transfer remains future work.
Figure 7a shows the most direct effect of transaction-aware activation. Fine-Grained activation records a mean of 68,588 observed deferred transactions, compared with 113,888 under Full Locking, corresponding to a descriptive reduction of approximately 39.8%. The deferred-transaction metric for FG and FL comprises transactions deferred when the migration fence is established together with late affected transactions observed before local cutover. STW is not included in this comparison because its measured transaction-pool size at global-lock acquisition is an instantaneous queue snapshot rather than a cumulative count of deferred arrivals.
The reduction in the deferred set does not correspond to a material degradation in end-to-end execution. As shown in Figure 7b, the mean active throughputs are 1257.09, 1246.59, and 1244.78 TXs/s for FG, FL, and STW, respectively. Figure 7c reports corresponding mean confirmation latencies of 36.32, 36.17, and 37.30 s. Thus, FG provides comparable throughput and latency to FL while allowing a substantially smaller set of transactions to be deferred during migration. Relative to STW, FG records a slightly higher mean throughput and a lower mean confirmation latency under the evaluated workload. These differences are interpreted descriptively; no statistical-significance test is claimed.
Figure 7d further reports the measured mapping and state installation operation time. The five-run means are 229.97 ms for FG, 306.20 ms for FL, and 293.81 ms for STW. This measurement covers committed mapping update and state installation and terminates before the subsequent release and rerouting of deferred transactions; it therefore must not be interpreted as the complete migration duration. The comparatively wide confidence interval observed for FL reflects run-to-run variation in this operation under the evaluated configuration.
Table 2 complements Figure 7 with additional migration-volume and reconfiguration measurements. The migrated-account counts are comparable across the three modes, indicating that the activation comparison applies essentially the same target-mapping workload. The initial state-transfer byte count is obtained from application/framing-level migration instrumentation and is therefore not interpreted as TCP/IP packet volume or independently measured WAN traffic. Moreover, the STW deferred-transaction entry is omitted because its recorded transaction-pool size at global-lock acquisition is an instantaneous queue snapshot rather than a cumulative count semantically equivalent to the FG/FL deferred-transaction metric.
The three activation modes emphasize different aspects of reconfiguration performance. STW records the lowest total reconfiguration time in this experiment, whereas FG substantially reduces the scope of transaction deferral while preserving processing continuity for unaffected transactions during mapping activation. With comparable end-to-end throughput and confirmation latency, the smaller deferred set highlights the principal benefit of Fine-Grained activation in the evaluated configuration. Across the three modes, the mean total reconfiguration times in Table 2 range from 7.90 to 8.62 s and remain below the configured 50 s repartitioning interval. Thus, under this controlled workload, the complete measured reconfiguration—rather than only the partition computation profiled in Section 5.4—fits within one repartitioning cycle.

5.8. Discussion

The controlled experiments provide a consistent interpretation of the two proposed refinement stages. The component-wise ablation in Figure 3 shows that the load-aware community-to-shard assignment primarily improves shard-level workload balance, while the subsequent boundary-account refinement recovers transaction locality with little change in the achieved queue balance. The complete M2 pipeline therefore reflects the intended coordination between locality and load rather than an improvement attributable to either refinement alone. The comparison with CLPA further shows that this coordination is accompanied by higher active throughput, lower confirmation latency, and substantially lower queue dispersion under the controlled configuration.
The sensitivity and profiling experiments clarify the operating range and practical cost of this behavior. Across β [ 1 , 4 ] , the evaluated partitioning results remain within a relatively narrow range, supporting β = 2.0 as an evaluated default rather than a claimed optimum. Varying the repartitioning interval exposes an explicit adaptation–overhead tradeoff: shorter intervals reduce confirmation latency but increase the fraction of time spent in reconfiguration, whereas the 50 s setting provides a balanced evaluated operating point. The partition-only profiling results in Figure 5 further show that the measured partition computation remains below 100 ms for the tested 50,000–300,000 transaction prefixes and 4–24 shard configurations. These measurements characterize the evaluated implementation range and are not used to infer asymptotic or production-scale performance.
The archived end-to-end sweep in Figure 6 complements the controlled experiments by extending the evaluation across a broader range of arrival rates and shard counts. The auxiliary migration experiment in Figure 7 and Table 2 further shows that Fine-Grained activation can apply the generated mapping while substantially reducing transaction deferral and maintaining comparable end-to-end throughput and confirmation latency. Taken together, the controlled, archived, and migration experiments consistently support the coarse-to-fine design of LB-Louvain: community-level placement alleviates shard-load concentration, boundary refinement restores transaction locality, and Fine-Grained activation enables the resulting mapping to be applied while preserving transaction-processing continuity.

6. Conclusions

This paper presents LB-Louvain, a coarse-to-fine account-partitioning method for coordinating transaction locality and shard-load balance in account-based state sharding. By separating logical-community extraction from physical-shard placement, the method combines locality-preserving community structure with load-aware coarse assignment and restricted boundary refinement. The experimental evaluation demonstrates that these stages play complementary roles in reducing workload concentration while maintaining transaction locality, leading to consistent improvements in end-to-end system behavior across the evaluated configurations. The results further show that the resulting mapping can be adapted to changing interaction patterns and applied during state reconfiguration with limited disruption to transaction processing. Overall, LB-Louvain provides a practical framework for adaptive account placement under the evaluated relay-based transfer model. Future work will extend the evaluation to independent workloads, additional blockchain platforms, directed and smart-contract access patterns, geographically distributed deployments, and fault-injection studies of mapping activation.

Author Contributions

Z.L. was responsible for conceptualization, methodology, software, formal analysis, visualization, and writing—original draft preparation. J.D. contributed to methodology, validation, and writing—review and editing. K.F. contributed to conceptualization, supervision, and writing—review and editing. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The controlled experiments use the publicly available selectedTxs_300K.csv workload distributed in the https://github.com/HuangLab-SYSU/block-emulator (accessed on 3 September 2026). BlockEmulator identifies this workload as derived from XBlock-ETH; the exact file’s SHA-256 checksum and the provenance information available from the upstream project are reported in Section 5.1.

Conflicts of Interest

The authors declare no conflicts of interest.

Abbreviations

The following abbreviations are used in this manuscript:
CLPACommunity-aware label propagation algorithm
CTRCross-shard transaction ratio
PBFTPractical Byzantine fault tolerance
TPSTransactions per second
TXTransaction

References

  1. Luu, L.; Narayanan, V.; Zheng, C.; Baweja, K.; Gilbert, S.; Saxena, P. A Secure Sharding Protocol for Open Blockchains. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS), Vienna, Austria, 24–28 October 2016; pp. 17–30. [Google Scholar] [CrossRef] [Scilit]
  2. Kokoris-Kogias, E.; Jovanovic, P.; Gasser, L.; Gailly, N.; Syta, E.; Ford, B. OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding. In Proceedings of the 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 20–24 May 2018; pp. 583–598. [Google Scholar] [CrossRef] [Scilit]
  3. Zamani, M.; Movahedi, M.; Raykova, M. RapidChain: Scaling Blockchain via Full Sharding. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS), Toronto, ON, Canada, 15–19 October 2018; pp. 931–948. [Google Scholar] [CrossRef] [Scilit]
  4. Al-Bassam, M.; Sonnino, A.; Bano, S.; Hrycyszyn, D.; Danezis, G. Chainspace: A Sharded Smart Contracts Platform. In Proceedings of the Network and Distributed System Security Symposium (NDSS), San Diego, CA, USA, 18–21 February 2018. [Google Scholar] [CrossRef] [Scilit]
  5. Wang, J.; Wang, H. Monoxide: Scale Out Blockchains with Asynchronous Consensus Zones. In Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI), Boston, MA, USA, 26–28 February 2019; pp. 95–112. [Google Scholar]
  6. Huang, H.; Peng, X.; Zhan, J.; Zhang, S.; Lin, Y.; Zheng, Z.; Guo, S. BrokerChain: A Cross-Shard Blockchain Protocol for Account/Balance-Based State Sharding. In Proceedings of the IEEE INFOCOM 2022—IEEE Conference on Computer Communications, London, UK, 2–5 May 2022; pp. 1968–1977. [Google Scholar] [CrossRef] [Scilit]
  7. Jia, L.; Liu, Y.; Wang, K.; Sun, Y. Estuary: A Low Cross-Shard Blockchain Sharding Protocol Based on State Splitting. IEEE Trans. Parallel Distrib. Syst. 2024, 35, 405–420. [Google Scholar] [CrossRef] [Scilit]
  8. Li, C.; Huang, H.; Zhao, Y.; Peng, X.; Yang, R.; Zheng, Z.; Guo, S. Achieving Scalability and Load Balance across Blockchain Shards for State Sharding. In Proceedings of the 2022 41st IEEE International Symposium on Reliable Distributed Systems (SRDS), Vienna, Austria, 19–22 September 2022; pp. 284–294. [Google Scholar] [CrossRef] [Scilit]
  9. Zhang, Y.; Pan, S.; Yu, J. TxAllo: Dynamic Transaction Allocation in Sharded Blockchain Systems. In Proceedings of the 2023 IEEE 39th International Conference on Data Engineering (ICDE), Anaheim, CA, USA, 3–7 April 2023; pp. 721–733. [Google Scholar] [CrossRef] [Scilit]
  10. Han, P.; Sun, L.; Ngo, Q.V.; Li, Y.; Qi, G.; An, Y.; Zhu, Z. Cross-Shard Transaction Optimization Based on Community Detection in Sharding Blockchain Systems. Appl. Soft Comput. 2024, 167, 112451. [Google Scholar] [CrossRef] [Scilit]
  11. Yin, B.; Zhang, P.; Chen, T. Efficient State Sharding in Blockchain via Density-Based Graph Partitioning. ACM Trans. Web 2025, 19, 1. [Google Scholar] [CrossRef] [Scilit]
  12. Huang, H.; Zheng, J.; Zhu, X.; Lin, Y.; Cai, T.; Zhou, L.; Zheng, Z.; Guo, S. ShardCutter: A Blockchain Sharding Protocol Achieving Transaction Workload Balance across State Shards. IEEE Trans. Netw. 2026, 34, 3393–3407. [Google Scholar] [CrossRef] [Scilit]
  13. Blondel, V.D.; Guillaume, J.L.; Lambiotte, R.; Lefebvre, E. Fast Unfolding of Communities in Large Networks. J. Stat. Mech. Theory Exp. 2008, 2008, P10008. [Google Scholar] [CrossRef] [Scilit]
  14. Li, T.; Wu, Y.; Weng, J.; Lu, J.; Huang, S.; Deng, W. ABChain: A Dynamic Sharding Protocol with Balanced Account Partitioning and Adaptive Brokers for IoT Blockchain. IEEE Internet Things J. 2025, 12, 36285–36301. [Google Scholar] [CrossRef] [Scilit]
  15. Nguyen, L.N.; Nguyen, T.D.T.; Dinh, T.N.; Thai, M.T. OptChain: Optimal Transactions Placement for Scalable Blockchain Sharding. In Proceedings of the 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS), Dallas, TX, USA, 7–10 July 2019; pp. 525–535. [Google Scholar] [CrossRef] [Scilit]
  16. Król, M.; Ascigil, O.; René, S.; Sonnino, A.; Al-Bassam, M.; Rivière, E. Shard Scheduler: Object Placement and Migration in Sharded Account-Based Blockchains. In Proceedings of the 3rd ACM Conference on Advances in Financial Technologies (AFT), Arlington, Virginia, 26–28 September 2021; pp. 43–56. [Google Scholar] [CrossRef] [Scilit]
  17. Li, M.; Wang, W.; Zhang, J. LB-Chain: Load-Balanced and Low-Latency Blockchain Sharding via Account Migration. IEEE Trans. Parallel Distrib. Syst. 2023, 34, 2797–2810. [Google Scholar] [CrossRef] [Scilit]
  18. Tao, Y.; Li, B.; Jiang, J.; Ng, H.C.; Wang, C.; Li, B. On Sharding Open Blockchains with Smart Contracts. In Proceedings of the 2020 IEEE 36th International Conference on Data Engineering (ICDE), Dallas, TX, USA, 20–24 April 2020; pp. 1357–1368. [Google Scholar] [CrossRef] [Scilit]
  19. Zheng, P.; Xu, Q.; Zheng, Z.; Zhou, Z.; Yan, Y.; Zhang, H. Meepo: Sharded Consortium Blockchain. In Proceedings of the 2021 IEEE 37th International Conference on Data Engineering (ICDE), Chania, Greece, 19–22 April 2021; pp. 1847–1852. [Google Scholar] [CrossRef] [Scilit]
  20. Zheng, P.; Xu, Q.; Luo, X.; Zheng, Z.; Zheng, W.; Chen, X.; Zhou, Z.; Yan, Y.; Zhang, H. Aeolus: Distributed Execution of Permissioned Blockchain Transactions via State Sharding. IEEE Trans. Ind. Inform. 2022, 18, 9227–9238. [Google Scholar] [CrossRef] [Scilit]
  21. Zhang, J.; Hong, Z.; Qiu, X.; Zhan, Y.; Guo, S.; Chen, W. SkyChain: A Deep Reinforcement Learning-Empowered Dynamic Blockchain Sharding System. In Proceedings of the 49th International Conference on Parallel Processing (ICPP), Edmonton, AB, Canada, 17–20 August 2020; pp. 1–11. [Google Scholar] [CrossRef] [Scilit]
  22. Nguyen, C.T.; Hoang, D.T.; Nguyen, D.N.; Xiao, Y.; Niyato, D.; Dutkiewicz, E. MetaShard: A Novel Sharding Blockchain Platform for Metaverse Applications. IEEE Trans. Mob. Comput. 2024, 23, 4348–4361. [Google Scholar] [CrossRef] [Scilit]
  23. Huang, H.; Zhao, Y.; Zheng, Z. tMPT: Reconfiguration across Blockchain Shards via Trimmed Merkle Patricia Trie. In Proceedings of the 2023 IEEE/ACM 31st International Symposium on Quality of Service (IWQoS), Orlando, FL, USA, 19–21 June 2023; pp. 1–10. [Google Scholar] [CrossRef] [Scilit]
  24. Huang, H.; Lin, Y.; Zheng, Z. Account Migration across Blockchain Shards Using Fine-Tuned Lock Mechanism. In Proceedings of the IEEE INFOCOM 2024—IEEE Conference on Computer Communications, Vancouver, BC, Canada, 20–23 May 2024; pp. 271–280. [Google Scholar] [CrossRef] [Scilit]
  25. Huang, H.; Ye, G.; Yang, Q.; Chen, Q.; Yin, Z.; Luo, X.; Lin, J.; Zheng, J.; Li, T.; Zheng, Z. BlockEmulator: An Emulator Enabling to Test Blockchain Sharding Protocols. IEEE Trans. Serv. Comput. 2025, 18, 690–703. [Google Scholar] [CrossRef] [Scilit]
  26. Castro, M.; Liskov, B. Practical Byzantine Fault Tolerance. In Proceedings of the 3rd USENIX Symposium on Operating Systems Design and Implementation (OSDI), New Orleans, LA, USA, 22–25 February 1999; pp. 173–186. [Google Scholar]
  27. Zheng, P.; Zheng, Z.; Wu, J.; Dai, H.N. XBlock-ETH: Extracting and Exploring Blockchain Data from Ethereum. IEEE Open J. Comput. Soc. 2020, 1, 95–106. [Google Scholar] [CrossRef] [Scilit]
Figure 1. Relay-based processing of a cross-shard transaction.
Figure 1. Relay-based processing of a cross-shard transaction.
Applsci 16 08959 g001
Figure 2. Workflow of the LB-Louvain account-partitioning method.
Figure 2. Workflow of the LB-Louvain account-partitioning method.
Applsci 16 08959 g002
Figure 3. Controlled baseline comparison and component-wise ablation under 300,000 replayed transactions, an injection rate of 1500 TXs/s, four physical shards with four PBFT nodes per shard, and a 50 s repartitioning interval: (a) overall cross-shard transaction ratio; (b) active throughput excluding inter-reconfiguration gaps; (c) average transaction confirmation latency; and (d) peak population standard deviation of shard transaction-pool queues. M0 uses standard Louvain with deterministic non-load-aware community placement and no boundary refinement; M1 adds the proposed load-aware community-to-shard assignment; and M2 denotes the complete LB-Louvain pipeline. Error bars denote 95% confidence intervals over five repeated system runs.
Figure 3. Controlled baseline comparison and component-wise ablation under 300,000 replayed transactions, an injection rate of 1500 TXs/s, four physical shards with four PBFT nodes per shard, and a 50 s repartitioning interval: (a) overall cross-shard transaction ratio; (b) active throughput excluding inter-reconfiguration gaps; (c) average transaction confirmation latency; and (d) peak population standard deviation of shard transaction-pool queues. M0 uses standard Louvain with deterministic non-load-aware community placement and no boundary refinement; M1 adds the proposed load-aware community-to-shard assignment; and M2 denotes the complete LB-Louvain pipeline. Error bars denote 95% confidence intervals over five repeated system runs.
Applsci 16 08959 g003
Figure 4. Sensitivity of the complete LB-Louvain pipeline to the cross-shard load coefficient β and the repartitioning interval: (a) overall cross-shard transaction ratio under different values of β ; (b) peak population standard deviation of shard transaction-pool queues under different values of β ; (c) average transaction confirmation latency under repartitioning intervals of 25, 50, and 100 s; and (d) the corresponding fraction of the experiment span spent in reconfiguration. In the current prototype, the repartitioning interval also determines the interaction-history accumulation interval; therefore, panels (c,d) characterize the joint history-window/reconfiguration-cadence tradeoff rather than an isolated history-window effect. Error bars denote 95% confidence intervals over five repeated system runs.
Figure 4. Sensitivity of the complete LB-Louvain pipeline to the cross-shard load coefficient β and the repartitioning interval: (a) overall cross-shard transaction ratio under different values of β ; (b) peak population standard deviation of shard transaction-pool queues under different values of β ; (c) average transaction confirmation latency under repartitioning intervals of 25, 50, and 100 s; and (d) the corresponding fraction of the experiment span spent in reconfiguration. In the current prototype, the repartitioning interval also determines the interaction-history accumulation interval; therefore, panels (c,d) characterize the joint history-window/reconfiguration-cadence tradeoff rather than an isolated history-window effect. Error bars denote 95% confidence intervals over five repeated system runs.
Applsci 16 08959 g004
Figure 5. Controlled partitioning-cost profile of the complete LB-Louvain pipeline: (a) partition time versus replayed-transaction prefix with four physical shards; (b) partition time versus physical-shard count with 300,000 replayed transactions; (c) total allocation delta versus replayed-transaction prefix with four physical shards; and (d) total allocation delta versus physical-shard count with 300,000 replayed transactions. The allocation metric is the measured cumulative allocation delta during the partitioning procedure rather than peak resident memory. Error bars denote 95% confidence intervals over five repeated profiling runs under identical configurations.
Figure 5. Controlled partitioning-cost profile of the complete LB-Louvain pipeline: (a) partition time versus replayed-transaction prefix with four physical shards; (b) partition time versus physical-shard count with 300,000 replayed transactions; (c) total allocation delta versus replayed-transaction prefix with four physical shards; and (d) total allocation delta versus physical-shard count with 300,000 replayed transactions. The allocation metric is the measured cumulative allocation delta during the partitioning procedure rather than peak resident memory. Error bars denote 95% confidence intervals over five repeated profiling runs under identical configurations.
Applsci 16 08959 g005
Figure 6. End-to-end performance under varying transaction arrival rates and physical-shard counts: (a) confirmed throughput versus transaction arrival rate with eight shards; (b) confirmation latency versus transaction arrival rate with eight shards; (c) confirmed throughput versus physical-shard count at 1500 TXs/s; (d) confirmation latency versus physical-shard count at 1500 TXs/s; (e) confirmed throughput under paired arrival-rate and shard-count configurations; (f) confirmation latency under paired configurations.
Figure 6. End-to-end performance under varying transaction arrival rates and physical-shard counts: (a) confirmed throughput versus transaction arrival rate with eight shards; (b) confirmation latency versus transaction arrival rate with eight shards; (c) confirmed throughput versus physical-shard count at 1500 TXs/s; (d) confirmation latency versus physical-shard count at 1500 TXs/s; (e) confirmed throughput under paired arrival-rate and shard-count configurations; (f) confirmation latency under paired configurations.
Applsci 16 08959 g006
Figure 7. Controlled comparison of Transaction-Aware Activation and migration overhead: (a) observed migration-deferred transactions for Fine-Grained activation (FG) and Full Locking (FL); (b) active throughput for FG, FL, and Stop-the-World activation (STW); (c) average transaction confirmation latency; and (d) mapping and state installation time. The STW transaction-pool snapshot at global-lock acquisition is not directly comparable with the cumulative deferred-transaction count used for FG and FL and is therefore omitted from panel (a). Mapping and state installation timing ends before deferred-transaction release and rerouting. Error bars denote 95% confidence intervals over five repeated system runs.
Figure 7. Controlled comparison of Transaction-Aware Activation and migration overhead: (a) observed migration-deferred transactions for Fine-Grained activation (FG) and Full Locking (FL); (b) active throughput for FG, FL, and Stop-the-World activation (STW); (c) average transaction confirmation latency; and (d) mapping and state installation time. The STW transaction-pool snapshot at global-lock acquisition is not directly comparable with the cumulative deferred-transaction count used for FG and FL and is therefore omitted from panel (a). Mapping and state installation timing ends before deferred-transaction release and rerouting. Error bars denote 95% confidence intervals over five repeated system runs.
Applsci 16 08959 g007
Table 1. Controlled revision configuration and reviewer-driven experiment variations.
Table 1. Controlled revision configuration and reviewer-driven experiment variations.
ParameterDefault Controlled SettingVariation Where Applicable
PlatformBlockEmulator [25]Fixed
DatasetselectedTxs_300K.csvFixed base workload
Number of transactions300,00050,000–300,000 transaction prefixes in the scalability experiment
Transaction injection rate1500 TXs/sFixed in the controlled reviewer experiments unless stated otherwise
Physical shards44, 8, 12, 16, 20, and 24 in the scalability experiment
PBFT nodes per shard4Fixed
Repartitioning interval50 s25, 50, and 100 s in the adaptation/cadence experiments
Block interval5 sFixed
Block capacity2000 transactionsFixed; byte-based block sizing disabled
PBFT timeout20,000 msFixed
Transaction batch size16,000Fixed
Cross-shard load coefficient β 2.01.0, 1.5, 2.0, 3.0, and 4.0 in the sensitivity experiment
Partitioning variantM2 (complete LB-Louvain)M0, M1, and M2 in the component ablation
Configured Bandwidth parameter10,000,000Fixed
Operating systemWindows 11Fixed
ImplementationGo 1.19.13Fixed
CPUIntel Core i9-14900HX, 24 cores/32 logical processorsFixed
Memory31.73 GBFixed
Formal repetitions5 independent identical-configuration system runsFixed for the reported reviewer experiments
Statistical summaryMean, sample SD, and 95% confidence intervalNo statistical-significance test is claimed
Table 2. Controlled migration and activation measurements.
Table 2. Controlled migration and activation measurements.
MetricFGFLSTW
Observed deferred transactions68,588113,888
Active TPS (TX/s)1257.091246.591244.78
Confirmation latency (s)36.3236.1737.30
Migrated accounts53,47653,56954,552
Initial state-transfer bytes ( 10 6 B)35.6635.6537.70
Mapping + state install time (ms)229.97306.20293.81
Total reconfiguration time (ms)8445.358615.917895.27
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Luan, Z.; Du, J.; Fan, K. LB-Louvain: Balancing Transaction Locality and Shard Load in Account-Based State Sharding. Appl. Sci. 2026, 16, 8959. https://doi.org/10.3390/app16188959

AMA Style

Luan Z, Du J, Fan K. LB-Louvain: Balancing Transaction Locality and Shard Load in Account-Based State Sharding. Applied Sciences. 2026; 16(18):8959. https://doi.org/10.3390/app16188959

Chicago/Turabian Style

Luan, Zhen, Jiahui Du, and Kuan Fan. 2026. "LB-Louvain: Balancing Transaction Locality and Shard Load in Account-Based State Sharding" Applied Sciences 16, no. 18: 8959. https://doi.org/10.3390/app16188959

APA Style

Luan, Z., Du, J., & Fan, K. (2026). LB-Louvain: Balancing Transaction Locality and Shard Load in Account-Based State Sharding. Applied Sciences, 16(18), 8959. https://doi.org/10.3390/app16188959

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop