You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2022/01/15 07:42:15 UTC
[incubator-tuweni] branch main updated: move all stores to infinispan
This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/main by this push:
new ddf686f move all stores to infinispan
new 62d6eb8 Merge pull request #362 from atoulme/move_to_infinispan
ddf686f is described below
commit ddf686f755e75729b013363eedbcdfd2c6e5b993
Author: Antoine Toulme <an...@lunar-ocean.com>
AuthorDate: Fri Jan 14 23:08:01 2022 -0800
move all stores to infinispan
---
.../org/apache/tuweni/ethclient/EthereumClient.kt | 32 +++++++++++++---------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClient.kt b/eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClient.kt
index b399d32..11cf2a9 100644
--- a/eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClient.kt
+++ b/eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClient.kt
@@ -41,7 +41,7 @@ import org.apache.tuweni.eth.repository.BlockchainIndex
import org.apache.tuweni.eth.repository.BlockchainRepository
import org.apache.tuweni.eth.repository.MemoryTransactionPool
import org.apache.tuweni.kv.InfinispanKeyValueStore
-import org.apache.tuweni.kv.LevelDBKeyValueStore
+import org.apache.tuweni.kv.KeyValueStore
import org.apache.tuweni.kv.MapKeyValueStore
import org.apache.tuweni.kv.PersistenceMarshaller
import org.apache.tuweni.metrics.MetricsService
@@ -56,6 +56,7 @@ import org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguratio
import org.slf4j.LoggerFactory
import java.net.InetSocketAddress
import java.net.URI
+import java.nio.file.Path
import kotlin.coroutines.CoroutineContext
/**
@@ -82,6 +83,16 @@ class EthereumClient(
private val managerHandler = mutableListOf<DefaultCacheManager>()
+ private fun createStore(dataStorage: Path, manager: DefaultCacheManager, name: String): KeyValueStore<Bytes, Bytes> {
+ val headersCache: Cache<Bytes, Bytes> = manager.createCache(
+ name,
+ ConfigurationBuilder().persistence().addStore(RocksDBStoreConfigurationBuilder::class.java)
+ .location(dataStorage.resolve(name).toAbsolutePath().toString())
+ .expiredLocation(dataStorage.resolve("$name-expired").toAbsolutePath().toString()).build()
+ )
+ return InfinispanKeyValueStore.open(headersCache)
+ }
+
suspend fun start() {
logger.info("Starting Ethereum client...")
val metricsService = MetricsService(
@@ -118,19 +129,14 @@ class EthereumClient(
val manager = DefaultCacheManager(builder.build())
managerHandler.add(manager)
- val headersCache: Cache<Bytes, Bytes> = manager.createCache(
- "headers",
- ConfigurationBuilder().persistence().addStore(RocksDBStoreConfigurationBuilder::class.java)
- .location(dataStorage.resolve("headers").toAbsolutePath().toString())
- .expiredLocation(dataStorage.resolve("headers-expired").toAbsolutePath().toString()).build()
- )
+
val repository = BlockchainRepository.init(
- LevelDBKeyValueStore.open(dataStorage.resolve("bodies")),
- InfinispanKeyValueStore.open(headersCache),
- LevelDBKeyValueStore.open(dataStorage.resolve("metadata")),
- LevelDBKeyValueStore.open(dataStorage.resolve("transactionReceipts")),
- LevelDBKeyValueStore.open(dataStorage.resolve("transactions")),
- LevelDBKeyValueStore.open(dataStorage.resolve("state")),
+ createStore(dataStorage, manager, "bodies"),
+ createStore(dataStorage, manager, "headers"),
+ createStore(dataStorage, manager, "metadata"),
+ createStore(dataStorage, manager, "transactionReceipts"),
+ createStore(dataStorage, manager, "transactions"),
+ createStore(dataStorage, manager, "state"),
BlockchainIndex(writer),
genesisBlock,
metricsService.meterSdkProvider["${dataStore.getName()}_storage"]
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org