forked from hyperledger/besu
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve genesis state performance at startup (hyperledger#6977)
* Refactor genesis options file management Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Make loading allocation from genesis lazy Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Update tests Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Memory optimization with streaming Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Improve loading and storgin genesis state at startup Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Remove comments Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Avoid parsing genesis file allocations twice Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Update javadoc Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Fix Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Fix Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Ignore unknown objects in allocations Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * avoid keeping genesis allocation data in memory Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Update CHANGELOG Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> --------- Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: ahamlat <ameziane.hamlat@consensys.net> Co-authored-by: ahamlat <ameziane.hamlat@consensys.net>
- Loading branch information
Showing
16 changed files
with
713 additions
and
357 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
config/src/main/java/org/hyperledger/besu/config/GenesisAccount.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/* | ||
* Copyright contributors to Hyperledger Besu. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | ||
* the License. You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | ||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations under the License. | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
package org.hyperledger.besu.config; | ||
|
||
import org.hyperledger.besu.datatypes.Address; | ||
import org.hyperledger.besu.datatypes.Wei; | ||
|
||
import java.util.Map; | ||
|
||
import org.apache.tuweni.bytes.Bytes; | ||
import org.apache.tuweni.bytes.Bytes32; | ||
import org.apache.tuweni.units.bigints.UInt256; | ||
|
||
/** | ||
* Genesis account | ||
* | ||
* @param address of the account | ||
* @param nonce nonce of the account at genesis | ||
* @param balance balance of the account at genesis | ||
* @param code code of the account at genesis, can be null | ||
* @param storage storage of the account at genesis | ||
* @param privateKey of the account, only use for testing | ||
*/ | ||
public record GenesisAccount( | ||
Address address, | ||
long nonce, | ||
Wei balance, | ||
Bytes code, | ||
Map<UInt256, UInt256> storage, | ||
Bytes32 privateKey) {} |
109 changes: 0 additions & 109 deletions
109
config/src/main/java/org/hyperledger/besu/config/GenesisAllocation.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.