public static GenesisState fromConfig(
      final DataStorageConfiguration dataStorageConfiguration,
      final GenesisConfig genesisConfig,
      final ProtocolSchedule protocolSchedule) {
    final var genesisStateRoot = calculateGenesisStateRoot(dataStorageConfiguration, genesisConfig);
    final Block block =
        new Block(
            buildHeader(genesisConfig, genesisStateRoot, protocolSchedule),
            buildBody(genesisConfig));
    return new GenesisState(block, genesisConfig);
  }
Construct a {@link GenesisState} from a JSON object.

@param dataStorageConfiguration A {@link DataStorageConfiguration} describing the storage
    configuration
@param genesisConfig A {@link GenesisConfig} describing the genesis block.
@param protocolSchedule A protocol Schedule associated with
@return A new {@link GenesisState}.
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/chain/GenesisState.java