From 12af1ef720e5ed7dc77ed41f3be32309af8b12c6 Mon Sep 17 00:00:00 2001 From: jiangbuyun Date: Sun, 24 Jul 2022 12:52:19 +0800 Subject: [PATCH] =?UTF-8?q?repchain2.0-update86:=E6=95=B4=E7=90=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=9A=E5=88=A0=E9=99=A4API=E3=80=81?= =?UTF-8?q?=E5=90=88=E7=BA=A6=E3=80=81=E5=85=B1=E8=AF=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=9A=84=E4=B8=93=E9=97=A8=E7=BA=BF=E7=A8=8B=E6=B1=A0=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.conf | 64 ----- src/main/resources/application_gm.conf | 253 ------------------ .../resources/application_international.conf | 247 ----------------- src/main/scala/rep/api/rest/RestRouter.scala | 42 --- src/main/scala/rep/api/rest/RestService.scala | 58 ++-- .../rep/network/module/IModuleManager.scala | 4 +- src/main/scala/rep/sc/SandboxDispatcher.scala | 2 +- .../scala/rep/sc/TransactionDispatcher.scala | 2 +- src/main/scala/rep/ui/web/EventServer.scala | 11 +- 9 files changed, 37 insertions(+), 646 deletions(-) delete mode 100644 src/main/resources/application_gm.conf delete mode 100644 src/main/resources/application_international.conf delete mode 100644 src/main/scala/rep/api/rest/RestRouter.scala diff --git a/src/main/resources/application.conf b/src/main/resources/application.conf index 3e6573fe..519551a1 100644 --- a/src/main/resources/application.conf +++ b/src/main/resources/application.conf @@ -101,73 +101,9 @@ akka { } } - //创世块 genesisblock { creationBlockTime = 1495451252086 } } -contract-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 3 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } - -http-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 100 - } - - consensus-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } - diff --git a/src/main/resources/application_gm.conf b/src/main/resources/application_gm.conf deleted file mode 100644 index a23d01df..00000000 --- a/src/main/resources/application_gm.conf +++ /dev/null @@ -1,253 +0,0 @@ -akka { - loggers = ["akka.event.slf4j.Slf4jLogger"] - # Options: ERROR, WARNING, INFO, DEBUG - loglevel = "INFO" - logging-filter = "akka.event.slf4j.Slf4jLoggingFilter" - - cluster { - akka.cluster.log-info = on - log-info-verbose = on - #jmx.enabled = on - jmx.multi-mbeans-in-same-jvm = on - #min-nr-of-members = 4 - } - actor { - serialize-messages = off - serialize-creators = off - enable-additional-serialization-bindings = on - allow-java-serialization = off - provider = "akka.cluster.ClusterActorRefProvider" - #provider = "cluster" - serializers { - kryo = "com.twitter.chill.akka.AkkaSerializer" - java = "akka.serialization.JavaSerializer" - proto = "akka.remote.serialization.ProtobufSerializer" - } - - serialization-bindings { - "java.lang.String" = java - "java.io.Serializable" = kryo - "com.google.protobuf.Message" = proto - "scalapb.GeneratedMessage" = proto - } - - } - - - remote { - classic { - netty.tcp { - transport-class = "akka.remote.transport.netty.NettyTransport" - #mesage传输块大小配置 - send-buffer-size = 2048000b - receive-buffer-size = 2048000b - maximum-frame-size = 1024000b - enable-ssl = true - ssl-engine-provider = akka.remote.transport.netty.ConfigSSLEngineProvider - security { - key-store = "jks/121000005l35120456.node1.jks" - trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "123" - key-password = "123" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "TLSv1.3" - enabled-algorithms = [TLS_AES_128_GCM_SHA256] - require-mutual-authentication = on - random-number-generator = "SecureRandom" - } - } - netty.ssl.security { - key-store = "jks/121000005l35120456.node1.jks" - trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "123" - key-password = "123" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "TLSv1.3" - enabled-algorithms = [TLS_AES_128_GCM_SHA256] - require-mutual-authentication = on - random-number-generator = "SecureRandom" - } - } - - artery { - - # Disable artery with this flag - enabled = on - - # Select the underlying transport implementation. - # Possible values: aeron-udp, tcp, tls-tcp - transport = tls-tcp - #log-received-messages = on - #log-sent-messages = on - advanced { - - # Maximum serialized message size, including header data. - maximum-frame-size = 5120 KiB - - # Direct byte buffers are reused in a pool with this maximum size. - # Each buffer has the size of 'maximum-frame-size'. - # This is not a hard upper limit on number of created buffers. Additional - # buffers will be created if needed, e.g. when using many outbound - # associations at the same time. Such additional buffers will be garbage - # collected, which is not as efficient as reusing buffers in the pool. - buffer-pool-size = 256 - - # Maximum serialized message size for the large messages, including header data. - # It is currently restricted to 1/8th the size of a term buffer that can be - # configured by setting the 'aeron.term.buffer.length' system property. - # See 'large-message-destinations'. - maximum-large-frame-size = 5 MiB - - # Direct byte buffers for the large messages are reused in a pool with this maximum size. - # Each buffer has the size of 'maximum-large-frame-size'. - # See 'large-message-destinations'. - # This is not a hard upper limit on number of created buffers. Additional - # buffers will be created if needed, e.g. when using many outbound - # associations at the same time. Such additional buffers will be garbage - # collected, which is not as efficient as reusing buffers in the pool. - large-buffer-pool-size = 64 - - outbound-message-queue-size = 30720 - - #inbound-lanes = 1 - - - #outbound-lanes = 1 - - - } - - # SSL configuration that is used when transport=tls-tcp. - ssl { - # Factory of SSLEngine. - # Must implement akka.remote.artery.tcp.SSLEngineProvider and have a public - # constructor with an ActorSystem parameter. - # The default ConfigSSLEngineProvider is configured by properties in section - # akka.remote.artery.ssl.config-ssl-engine - - #ssl-engine-provider = akka.remote.artery.tcp.ConfigSSLEngineProvider - #ssl-engine-provider = akka.remote.artery.tcp.ConfigSSLEngineProvider - ssl-engine-provider = rep.crypto.GMSSLEngineProvider - # Config of akka.remote.artery.tcp.ConfigSSLEngineProvider - config-ssl-engine { - base-path = "pfx/" - #base-path = "jks/" - key-store = "pfx/sm2.test_node1.both.pfx" - #key-store = "jks/121000005l35120456.node1.jks" - trust-store = "pfx/mytruststore.pfx" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "pfx/mytruststore.pfx" // 加载信任列表证书用的_origin - #trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "12345678" - key-password = "12345678" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "GMSSLv1.1" - #protocol = "TLSv1.2" - #enabled-algorithms = [TLS_AES_128_GCM_SHA256] - enabled-algorithms = [GMSSL_ECC_SM4_SM3] - #enabled-algorithms = [TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256] - #require-mutual-authentication = on - random-number-generator = "SecureRandom" - - # Require mutual authentication between TLS peers - # - # Without mutual authentication only the peer that actively establishes a connection (TLS client side) - # checks if the passive side (TLS server side) sends over a trusted certificate. With the flag turned on, - # the passive side will also request and verify a certificate from the connecting peer. - # - # To prevent man-in-the-middle attacks this setting is enabled by default. - require-mutual-authentication = on - - # Set this to `on` to verify hostnames with sun.security.util.HostnameChecker - hostname-verification = off - } - } - } - } - - - //创世块 - genesisblock { - creationBlockTime = 1495451252086 - } - -} -contract-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 3 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } - -http-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 100 - } - - consensus-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } \ No newline at end of file diff --git a/src/main/resources/application_international.conf b/src/main/resources/application_international.conf deleted file mode 100644 index 4b08fd2d..00000000 --- a/src/main/resources/application_international.conf +++ /dev/null @@ -1,247 +0,0 @@ -akka { - loggers = ["akka.event.slf4j.Slf4jLogger"] - # Options: ERROR, WARNING, INFO, DEBUG - loglevel = "INFO" - logging-filter = "akka.event.slf4j.Slf4jLoggingFilter" - - cluster { - akka.cluster.log-info = on - log-info-verbose = on - #jmx.enabled = on - jmx.multi-mbeans-in-same-jvm = on - #min-nr-of-members = 4 - } - actor { - serialize-messages = off - serialize-creators = off - enable-additional-serialization-bindings = on - allow-java-serialization = off - provider = "akka.cluster.ClusterActorRefProvider" - #provider = "cluster" - serializers { - kryo = "com.twitter.chill.akka.AkkaSerializer" - java = "akka.serialization.JavaSerializer" - proto = "akka.remote.serialization.ProtobufSerializer" - } - - serialization-bindings { - "java.lang.String" = java - "java.io.Serializable" = kryo - "com.google.protobuf.Message" = proto - "scalapb.GeneratedMessage" = proto - } - - } - - - remote { - classic { - netty.tcp { - transport-class = "akka.remote.transport.netty.NettyTransport" - #mesage传输块大小配置 - send-buffer-size = 2048000b - receive-buffer-size = 2048000b - maximum-frame-size = 1024000b - enable-ssl = true - ssl-engine-provider = akka.remote.transport.netty.ConfigSSLEngineProvider - security { - key-store = "jks/121000005l35120456.node1.jks" - trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "123" - key-password = "123" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "TLSv1.3" - enabled-algorithms = [TLS_AES_128_GCM_SHA256] - require-mutual-authentication = on - random-number-generator = "SecureRandom" - } - } - netty.ssl.security { - key-store = "jks/121000005l35120456.node1.jks" - trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "123" - key-password = "123" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "TLSv1.3" - enabled-algorithms = [TLS_AES_128_GCM_SHA256] - require-mutual-authentication = on - random-number-generator = "SecureRandom" - } - } - - artery { - - # Disable artery with this flag - enabled = on - - # Select the underlying transport implementation. - # Possible values: aeron-udp, tcp, tls-tcp - transport = tls-tcp - #log-received-messages = on - #log-sent-messages = on - advanced { - - # Maximum serialized message size, including header data. - maximum-frame-size = 5120 KiB - - # Direct byte buffers are reused in a pool with this maximum size. - # Each buffer has the size of 'maximum-frame-size'. - # This is not a hard upper limit on number of created buffers. Additional - # buffers will be created if needed, e.g. when using many outbound - # associations at the same time. Such additional buffers will be garbage - # collected, which is not as efficient as reusing buffers in the pool. - buffer-pool-size = 256 - - # Maximum serialized message size for the large messages, including header data. - # It is currently restricted to 1/8th the size of a term buffer that can be - # configured by setting the 'aeron.term.buffer.length' system property. - # See 'large-message-destinations'. - maximum-large-frame-size = 5 MiB - - # Direct byte buffers for the large messages are reused in a pool with this maximum size. - # Each buffer has the size of 'maximum-large-frame-size'. - # See 'large-message-destinations'. - # This is not a hard upper limit on number of created buffers. Additional - # buffers will be created if needed, e.g. when using many outbound - # associations at the same time. Such additional buffers will be garbage - # collected, which is not as efficient as reusing buffers in the pool. - large-buffer-pool-size = 64 - - outbound-message-queue-size = 30720 - - #inbound-lanes = 1 - - - #outbound-lanes = 1 - - - } - - # SSL configuration that is used when transport=tls-tcp. - ssl { - # Factory of SSLEngine. - # Must implement akka.remote.artery.tcp.SSLEngineProvider and have a public - # constructor with an ActorSystem parameter. - # The default ConfigSSLEngineProvider is configured by properties in section - # akka.remote.artery.ssl.config-ssl-engine - - #ssl-engine-provider = akka.remote.artery.tcp.ConfigSSLEngineProvider - ssl-engine-provider = akka.remote.artery.tcp.ConfigSSLEngineProvider - #ssl-engine-provider = rep.crypto.GMSSLEngineProvider - # Config of akka.remote.artery.tcp.ConfigSSLEngineProvider - config-ssl-engine { - base-path = "jks/" - key-store = "jks/121000005l35120456.node1.jks" - trust-store = "jks/mytruststore.jks" // 加载信任列表证书用的_tls1.3 - #trust-store = "jks/mytrust" // ssl用的_ca - trust-store-mm = "jks/mytruststore.jks" // 加载信任列表证书用的_origin - - key-store-password = "123" - key-password = "123" - trust-store-password = "changeme" // 加载信任列表证书用的_tls1.3 - #trust-store-password = "changeit" // ssl用的_ca - trust-store-password-mm = "changeme" // 加载信任列表证书用的_origin - - protocol = "TLSv1.2" - #enabled-algorithms = [TLS_AES_128_GCM_SHA256] - enabled-algorithms = [TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256] - #require-mutual-authentication = on - random-number-generator = "SecureRandom" - - # Require mutual authentication between TLS peers - # - # Without mutual authentication only the peer that actively establishes a connection (TLS client side) - # checks if the passive side (TLS server side) sends over a trusted certificate. With the flag turned on, - # the passive side will also request and verify a certificate from the connecting peer. - # - # To prevent man-in-the-middle attacks this setting is enabled by default. - require-mutual-authentication = on - - # Set this to `on` to verify hostnames with sun.security.util.HostnameChecker - hostname-verification = off - } - } - } - } - - - //创世块 - genesisblock { - creationBlockTime = 1495451252086 - } - -} -contract-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 3 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } - -http-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 100 - } - - consensus-dispatcher { - #executor = “thread-pool-executor” - #type = Dispatcher - type = Dispatcher - # What kind of ExecutionService to use - executor = "fork-join-executor" - # Configuration for the fork join pool - fork-join-executor { - # Min number of threads to cap factor-based parallelism number to - parallelism-min = 1 - # Parallelism (threads) . . . ceil(available processors * factor) - parallelism-factor = 2.0 - # Max number of threads to cap factor-based parallelism number to - parallelism-max = 2 - } - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 10 - } \ No newline at end of file diff --git a/src/main/scala/rep/api/rest/RestRouter.scala b/src/main/scala/rep/api/rest/RestRouter.scala deleted file mode 100644 index a77bf6d4..00000000 --- a/src/main/scala/rep/api/rest/RestRouter.scala +++ /dev/null @@ -1,42 +0,0 @@ -package rep.api.rest - -import java.util.concurrent.atomic.AtomicLong - -import akka.actor.{ActorRef, ActorSystem} - -class RestRouter(ActorNumber:Int,system: ActorSystem) { - private var ras: Array[ActorRef] = new Array[ActorRef](ActorNumber) - //private var ras4Transaction: Array[ActorRef] = new Array[ActorRef](ActorNumber/2) - private val nextActor : AtomicLong = new AtomicLong(0) - - CreateActor - //CreateActor4Transaction - - - - private def CreateActor={ - for (i <- 0 to ActorNumber - 1) { - var ra = system.actorOf(RestActor.props("api_" + i).withDispatcher("http-dispatcher"), "api_"+i) - ras(i) = ra - } - } - - /*private def CreateActor4Transaction={ - for (i <- 0 to ActorNumber/2 - 1) { - var ra = system.actorOf(AcceptTransactionActor.props("api_trans_" + i).withDispatcher("http-dispatcher"), "trans_"+i) - ras4Transaction(i) = ra - } - }*/ - - def getRestActor:ActorRef={ - val size = ras.length - val index = (nextActor.getAndIncrement % size).asInstanceOf[Int] - ras(if (index < 0) size + index else index) - } - - /*def getRestActor4Transaction:ActorRef={ - val size = ras.length - val index = (nextActor.getAndIncrement % size).asInstanceOf[Int] - ras4Transaction(if (index < 0) size + index else index) - }*/ -} diff --git a/src/main/scala/rep/api/rest/RestService.scala b/src/main/scala/rep/api/rest/RestService.scala index 53c90f16..7664dcf6 100644 --- a/src/main/scala/rep/api/rest/RestService.scala +++ b/src/main/scala/rep/api/rest/RestService.scala @@ -17,7 +17,7 @@ package rep.api.rest import java.io.File - +import akka.actor.ActorRef import scala.util.{Failure, Success} import scala.concurrent.{ExecutionContext, Future} import akka.util.Timeout @@ -58,7 +58,7 @@ import rep.log.RepLogger */ @Tag(name = "chaininfo", description = "获得当前区块链信息") @Path("/chaininfo") -class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) +class ChainService(ra: ActorRef)(implicit executionContext: ExecutionContext) extends Directives { import akka.pattern.ask @@ -81,7 +81,7 @@ class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get chaininfo") complete { - (ra.getRestActor ? ChainInfo).mapTo[QueryResult] + (ra ? ChainInfo).mapTo[QueryResult] } } } @@ -99,7 +99,7 @@ class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get node number") complete { - (ra.getRestActor ? NodeNumber).mapTo[QueryResult] + (ra ? NodeNumber).mapTo[QueryResult] } } } @@ -118,7 +118,7 @@ class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get number of cache") complete { - (ra.getRestActor ? TransNumber).mapTo[QueryResult] + (ra ? TransNumber).mapTo[QueryResult] } } } @@ -136,7 +136,7 @@ class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get number of accepted") complete { - (ra.getRestActor ? AcceptedTransNumber).mapTo[QueryResult] + (ra ? AcceptedTransNumber).mapTo[QueryResult] } } } @@ -151,7 +151,7 @@ class ChainService(ra: RestRouter)(implicit executionContext: ExecutionContext) @Tag(name = "block", description = "获得区块数据") @Path("/block") -class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) +class BlockService(ra: ActorRef, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) extends Directives { import akka.pattern.ask @@ -184,7 +184,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "block.hash", null)) { complete { - (ra.getRestActor ? BlockId(blockId)).mapTo[QueryResult] + (ra ? BlockId(blockId)).mapTo[QueryResult] } } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) @@ -196,7 +196,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli } } else { complete { - (ra.getRestActor ? BlockId(blockId)).mapTo[QueryResult] + (ra ? BlockId(blockId)).mapTo[QueryResult] } } } @@ -222,7 +222,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "block.blockHeight", null)) { complete { - (ra.getRestActor ? BlockHeight(blockHeight.toInt)).mapTo[QueryResult] + (ra ? BlockHeight(blockHeight.toInt)).mapTo[QueryResult] } } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) @@ -234,7 +234,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli } } else { complete { - (ra.getRestActor ? BlockHeight(blockHeight.toInt)).mapTo[QueryResult] + (ra ? BlockHeight(blockHeight.toInt)).mapTo[QueryResult] } } } @@ -257,7 +257,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli post { entity(as[Map[String, Long]]) { blockQuery => complete { - (ra.getRestActor ? TransNumberOfBlock(blockQuery("height"))).mapTo[QueryResult] + (ra ? TransNumberOfBlock(blockQuery("height"))).mapTo[QueryResult] } } } @@ -277,7 +277,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get block time for Height,block height=${blockHeight}") complete { - (ra.getRestActor ? BlockTimeForHeight(blockHeight.toLong)).mapTo[QueryResult] + (ra ? BlockTimeForHeight(blockHeight.toLong)).mapTo[QueryResult] } } } @@ -297,7 +297,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli extractClientIP { ip => RepLogger.debug(RepLogger.APIAccess_Logger, s"remoteAddr=${ip} get block time for txid,txid=${transid}") complete { - (ra.getRestActor ? BlockTimeForTxid(transid)).mapTo[QueryResult] + (ra ? BlockTimeForTxid(transid)).mapTo[QueryResult] } } } @@ -321,7 +321,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli val cert = RepChainConfigFilePathMgr.getCert(sessionInfo) try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "block.stream", null)) { - complete((ra.getRestActor ? BlockHeightStream(blockHeight.toInt)).mapTo[HttpResponse]) + complete((ra ? BlockHeightStream(blockHeight.toInt)).mapTo[HttpResponse]) } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) } @@ -331,7 +331,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli } } } else { - complete((ra.getRestActor ? BlockHeightStream(blockHeight.toInt)).mapTo[HttpResponse]) + complete((ra ? BlockHeightStream(blockHeight.toInt)).mapTo[HttpResponse]) } } } @@ -347,7 +347,7 @@ class BlockService(ra: RestRouter, repContext: RepChainSystemContext, isCheckCli @Consumes(Array(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.MULTIPART_FORM_DATA)) @Produces(Array(MediaType.APPLICATION_JSON)) @Path("/transaction") -class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) +class TransactionService(ra: ActorRef, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) extends Directives { import akka.pattern.ask @@ -416,7 +416,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "transaction", null)) { complete { - (ra.getRestActor ? TransactionId(transactionId)).mapTo[QueryResult] + (ra ? TransactionId(transactionId)).mapTo[QueryResult] } } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) @@ -428,7 +428,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh } } else { complete { - (ra.getRestActor ? TransactionId(transactionId)).mapTo[QueryResult] + (ra ? TransactionId(transactionId)).mapTo[QueryResult] } } } @@ -454,7 +454,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh val cert = RepChainConfigFilePathMgr.getCert(sessionInfo) try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "transaction.stream", null)) { - complete((ra.getRestActor ? TransactionStreamId(transactionId)).mapTo[HttpResponse]) + complete((ra ? TransactionStreamId(transactionId)).mapTo[HttpResponse]) } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) } @@ -464,7 +464,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh } } } else { - complete((ra.getRestActor ? TransactionStreamId(transactionId)).mapTo[HttpResponse]) + complete((ra ? TransactionStreamId(transactionId)).mapTo[HttpResponse]) } } } @@ -489,7 +489,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh val cert = RepChainConfigFilePathMgr.getCert(sessionInfo) try { if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "transaction.tranInfoAndHeight", null)) { - complete((ra.getRestActor ? TranInfoAndHeightId(transactionId)).mapTo[QueryResult]) + complete((ra ? TranInfoAndHeightId(transactionId)).mapTo[QueryResult]) } else { complete(QueryResult(Option(JsonMethods.parse(string2JsonInput(PermissionVerify.errorInfo_None_Permission))))) } @@ -499,7 +499,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh } } } else { - complete((ra.getRestActor ? TranInfoAndHeightId(transactionId)).mapTo[QueryResult]) + complete((ra ? TranInfoAndHeightId(transactionId)).mapTo[QueryResult]) } @@ -524,7 +524,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh post { entity(as[String]) { trans => complete { - (ra.getRestActor ? tranSign(trans)).mapTo[PostResult] + (ra ? tranSign(trans)).mapTo[PostResult] } // complete { (StatusCodes.Accepted, PostResult("hahhaha",None, Some("处理存在异常"))) } } @@ -559,7 +559,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh onComplete(tranFuture) { case Success(tranByteString) => complete { - (ra.getRestActor ? Transaction.parseFrom(tranByteString.toArray)).mapTo[PostResult] + (ra ? Transaction.parseFrom(tranByteString.toArray)).mapTo[PostResult] } case Failure(ex) => complete(StatusCodes.InternalServerError, ex.getMessage) @@ -589,7 +589,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh import akka.http.scaladsl.marshallers.xml.ScalaXmlSupport._ entity(as[CSpec]) { request => complete { - (ra.getRestActor ? request).mapTo[PostResult] + (ra ? request).mapTo[PostResult] } } } @@ -603,7 +603,7 @@ class TransactionService(ra: RestRouter, repContext: RepChainSystemContext, isCh */ @Tag(name = "db", description = "查询合约存储在DB中的数据") @Path("/db") -class DbService(ra: RestRouter, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) +class DbService(ra: ActorRef, repContext: RepChainSystemContext, isCheckClientPermission: Boolean)(implicit executionContext: ExecutionContext) extends Directives { import akka.pattern.ask @@ -634,7 +634,7 @@ class DbService(ra: RestRouter, repContext: RepChainSystemContext, isCheckClient if (cert != null && repContext.getPermissionVerify.CheckPermissionOfX509Certificate(cert, "db.query", null)) { entity(as[QueryDB]) { query: QueryDB => complete { - (ra.getRestActor ? query).mapTo[QueryResult] + (ra ? query).mapTo[QueryResult] } } } else { @@ -648,7 +648,7 @@ class DbService(ra: RestRouter, repContext: RepChainSystemContext, isCheckClient } else { entity(as[QueryDB]) { query: QueryDB => complete { - (ra.getRestActor ? query).mapTo[QueryResult] + (ra ? query).mapTo[QueryResult] } } } diff --git a/src/main/scala/rep/network/module/IModuleManager.scala b/src/main/scala/rep/network/module/IModuleManager.scala index b0b87aaa..d534af57 100644 --- a/src/main/scala/rep/network/module/IModuleManager.scala +++ b/src/main/scala/rep/network/module/IModuleManager.scala @@ -76,9 +76,9 @@ class IModuleManager(moduleName: String, isStartup: Boolean) extends ModuleBase( private def loadTransModule:Any={ //if (this.isStartup) { - pe.register(ModuleActorType.ActorType.transactiondispatcher, context.actorOf(TransactionDispatcher.props("transactiondispatcher").withDispatcher("contract-dispatcher"), "transactiondispatcher")) + pe.register(ModuleActorType.ActorType.transactiondispatcher, context.actorOf(TransactionDispatcher.props("transactiondispatcher"), "transactiondispatcher")) //} - pe.register(ModuleActorType.ActorType.dispatchofpreload, context.actorOf(DispatchOfPreload.props("dispatchofpreload").withDispatcher("contract-dispatcher"), "dispatchofpreload")) + pe.register(ModuleActorType.ActorType.dispatchofpreload, context.actorOf(DispatchOfPreload.props("dispatchofpreload"), "dispatchofpreload")) } private def loadClusterModule = { diff --git a/src/main/scala/rep/sc/SandboxDispatcher.scala b/src/main/scala/rep/sc/SandboxDispatcher.scala index eabb4da7..34b8fa24 100644 --- a/src/main/scala/rep/sc/SandboxDispatcher.scala +++ b/src/main/scala/rep/sc/SandboxDispatcher.scala @@ -232,7 +232,7 @@ class SandboxDispatcher(moduleName: String, cid: String) extends ModuleBase(modu case ChaincodeDeploy.CodeType.CODE_JAVASCRIPT => null case ChaincodeDeploy.CodeType.CODE_SCALA => - context.actorOf(Props(new SandboxScala(cid)).withDispatcher("contract-dispatcher"), sandboxName) + context.actorOf(Props(new SandboxScala(cid)), sandboxName) case ChaincodeDeploy.CodeType.CODE_VCL_DLL => null case ChaincodeDeploy.CodeType.CODE_VCL_EXE => diff --git a/src/main/scala/rep/sc/TransactionDispatcher.scala b/src/main/scala/rep/sc/TransactionDispatcher.scala index 10279a88..c9d13e79 100644 --- a/src/main/scala/rep/sc/TransactionDispatcher.scala +++ b/src/main/scala/rep/sc/TransactionDispatcher.scala @@ -29,7 +29,7 @@ class TransactionDispatcher(moduleName: String) extends ModuleBase(moduleName) { RepLogger.debug(RepLogger.Sandbox_Logger, s"transaction dispatcher for ${cid} is exist.") this.TransActors(cid) } else { - val sd = context.actorOf(SandboxDispatcher.props("sandbox_dispatcher_" + cid, cid).withDispatcher("contract-dispatcher"), "sandbox_dispatcher_" + cid) + val sd = context.actorOf(SandboxDispatcher.props("sandbox_dispatcher_" + cid, cid), "sandbox_dispatcher_" + cid) this.TransActors += cid -> sd RepLogger.debug(RepLogger.Sandbox_Logger, s"create transaction dispatcher for ${cid} .") sd diff --git a/src/main/scala/rep/ui/web/EventServer.scala b/src/main/scala/rep/ui/web/EventServer.scala index 9cc59296..fb972093 100644 --- a/src/main/scala/rep/ui/web/EventServer.scala +++ b/src/main/scala/rep/ui/web/EventServer.scala @@ -84,11 +84,9 @@ object EventServer { def start(sys:ActorSystem ,repContext: RepChainSystemContext) { implicit val system =sys implicit val materializer = ActorMaterializer() - //implicit val executionContext = system.dispatcher + implicit val executionContext = system.dispatcher - implicit val executionContext = system.dispatchers.lookup("http-dispatcher") - - val evtactor = system.actorOf(Props[RecvEventActor].withDispatcher("http-dispatcher"),"RecvEventActor") + val evtActor = system.actorOf(Props[RecvEventActor],"RecvEventActor") val port = repContext.getConfig.getHttpServicePort val actorNumber = repContext.getConfig.getHttpServiceActorNumber @@ -104,7 +102,7 @@ object EventServer { }~ //提供Event的WebSocket订阅服务 path("event") { get { - val sourceGraph: Graph[SourceShape[Event], NotUsed] = new EventActor4Stage(evtactor) + val sourceGraph: Graph[SourceShape[Event], NotUsed] = new EventActor4Stage(evtActor) val source: Source[Event, NotUsed] = Source.fromGraph(sourceGraph) extractWebSocketUpgrade @@ -118,8 +116,7 @@ object EventServer { } } - //val ra = sys.actorOf(RestActor.props("api"), "api") - val ra = new RestRouter(actorNumber,sys) + val ra = sys.actorOf(RestActor.props("api"), "api") //允许跨域访问,以支持在应用中发起请求 //val httpServer = Http()