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