Skip to content

Commit

Permalink
Moved Peer related classes from network.rlpx package to network package
Browse files Browse the repository at this point in the history
  • Loading branch information
dcaoyuan committed Sep 7, 2019
1 parent 3ba43d7 commit 621ee01
Show file tree
Hide file tree
Showing 20 changed files with 71 additions and 59 deletions.
6 changes: 3 additions & 3 deletions khipu-eth/src/main/scala/khipu/Khipu.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ import khipu.jsonrpc.Web3Service
import khipu.jsonrpc.http.JsonRpcHttpServer
import khipu.keystore.KeyStore
import khipu.mining.BlockGenerator
import khipu.network.KnownNodesService
import khipu.network.OutgoingPeer
import khipu.network.Peer
import khipu.network.handshake.EtcHandshake
import khipu.network.rlpx.KnownNodesService
import khipu.network.rlpx.OutgoingPeer
import khipu.network.rlpx.Peer
import khipu.network.rlpx.RLPx
import khipu.network.rlpx.auth.AuthHandshake
import khipu.network.rlpx.discovery.NodeDiscoveryService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import khipu.config.KhipuConfig
import khipu.crypto
import khipu.domain.BlockHeader
import khipu.domain.Receipt
import khipu.network.Peer
import khipu.network.handshake.EtcHandshake.PeerInfo
import khipu.network.p2p.messages.PV62
import khipu.network.p2p.messages.CommonMessages.Status
import khipu.network.rlpx.Peer
import khipu.network.rlpx.RLPxStage
import khipu.util.SimpleMap
import scala.collection.immutable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import akka.pattern.AskTimeoutException
import khipu.blockchain.sync.SyncService.SuspendPeerTick
import khipu.config.KhipuConfig
import khipu.domain.BlockHeader
import khipu.network.IncomingPeer
import khipu.network.Peer
import khipu.network.PeerEntity
import khipu.network.PeerManager
import khipu.network.OutgoingPeer
import khipu.network.handshake.EtcHandshake.PeerInfo
import khipu.network.p2p.messages.WireProtocol.Disconnect
import khipu.network.rlpx.IncomingPeer
import khipu.network.rlpx.OutgoingPeer
import khipu.network.rlpx.Peer
import khipu.network.rlpx.PeerEntity
import khipu.network.rlpx.PeerManager
import khipu.storage.AppStateStorage
import scala.collection.mutable
import scala.concurrent.duration._
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package khipu.blockchain.sync

import akka.util.ByteString
import khipu.domain.Blockchain
import khipu.network.PeerConfiguration
import khipu.network.p2p.Message
import khipu.network.p2p.MessageSerializable
import khipu.network.p2p.messages.PV62
import khipu.network.p2p.messages.PV63
import khipu.network.rlpx.PeerConfiguration
import scala.concurrent.ExecutionContext
import scala.concurrent.Future

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ import khipu.ledger.Ledger.BlockExecutionError
import khipu.ledger.Ledger.BlockResult
import khipu.ledger.Ledger.MissingNodeExecptionError
import khipu.ledger.Ledger.ValidationBeforeExecError
import khipu.network.Peer
import khipu.network.PeerEntity
import khipu.network.handshake.EtcHandshake.PeerInfo
import khipu.network.p2p.messages.CommonMessages.NewBlock
import khipu.network.p2p.messages.PV62
import khipu.network.rlpx.Peer
import khipu.network.rlpx.PeerEntity
import khipu.transactions.PendingTransactionsService
import khipu.ommers.OmmersPool
import scala.annotation.tailrec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import khipu.config.KhipuConfig
import khipu.crypto
import khipu.domain.Block
import khipu.domain.BlockHeader
import khipu.network.Peer
import khipu.network.p2p.Message
import khipu.network.p2p.messages.PV62
import khipu.network.p2p.messages.PV63
import khipu.network.rlpx.Peer
import khipu.ommers.OmmersPool
import khipu.service.ServiceBoard
import khipu.transactions.PendingTransactionsService
Expand Down
6 changes: 3 additions & 3 deletions khipu-eth/src/main/scala/khipu/config/KhipuConfig.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import khipu.DataWord
import khipu.domain.Address
import khipu.jsonrpc.JsonRpcController.JsonRpcConfig
import khipu.jsonrpc.http.JsonRpcHttpServer.JsonRpcHttpServerConfig
import khipu.network.rlpx.FastSyncHostConfiguration
import khipu.network.rlpx.PeerConfiguration
import khipu.network.rlpx.RLPxConfiguration
import khipu.network.FastSyncHostConfiguration
import khipu.network.PeerConfiguration
import khipu.network.RLPxConfiguration
import scala.concurrent.duration._
import scala.util.Try

Expand Down
2 changes: 1 addition & 1 deletion khipu-eth/src/main/scala/khipu/jsonrpc/NetService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import khipu.jsonrpc.NetService.NetServiceConfig
import com.typesafe.config.Config
import khipu.NodeStatus
import khipu.ServerStatus.{ Listening, NotListening }
import khipu.network.rlpx.PeerManager
import khipu.network.PeerManager
import khipu.service.ServiceBoard
import scala.concurrent.Future
import scala.concurrent.duration._
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package khipu.network.rlpx
package khipu.network

import akka.actor.{ Actor, ActorLogging, Props, Scheduler, ActorSystem, ActorRef, PoisonPill }
import akka.cluster.client.ClusterClientReceptionist
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package khipu.network.rlpx
package khipu.network

import akka.actor.ActorRef
import java.net.InetSocketAddress
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package khipu.network.rlpx
package khipu.network

import akka.actor.Actor
import akka.actor.ActorLogging
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package khipu.network.rlpx
package khipu.network

import akka.actor.Actor
import akka.actor.ActorLogging
Expand All @@ -9,9 +9,10 @@ import akka.pattern.ask
import akka.pattern.pipe
import akka.util.Timeout
import java.net.URI
import khipu.network.PeerEntity.Status.Handshaked
import khipu.network.handshake.EtcHandshake
import khipu.network.p2p.MessageSerializable
import khipu.network.rlpx.PeerEntity.Status.Handshaked
import khipu.network.rlpx.RLPx
import khipu.network.rlpx.auth.AuthHandshake
import khipu.network.rlpx.discovery.NodeDiscoveryService
import khipu.service.ServiceBoard
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import khipu.DataWord
import khipu.config.KhipuConfig
import khipu.domain.Blockchain
import khipu.network.ForkResolver
import khipu.network.PeerConfiguration
import khipu.network.p2p.Message
import khipu.network.p2p.MessageSerializable
import khipu.network.p2p.messages.CommonMessages.NewBlock
import khipu.network.p2p.messages.CommonMessages.Status
import khipu.network.p2p.messages.PV62
import khipu.network.p2p.messages.Versions
import khipu.network.p2p.messages.WireProtocol.{ Capability, Disconnect, Hello }
import khipu.network.rlpx.PeerConfiguration
import khipu.storage.AppStateStorage
import scala.concurrent.duration._

Expand Down
30 changes: 30 additions & 0 deletions khipu-eth/src/main/scala/khipu/network/package.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,38 @@
package khipu

import scala.concurrent.duration.FiniteDuration

package object network {
sealed trait Control
case object Tick extends Control
case object WireDisconnected extends Control

trait RLPxConfiguration {
val waitForHandshakeTimeout: FiniteDuration
val waitForTcpAckTimeout: FiniteDuration
}

trait PeerConfiguration {
val connectRetryDelay: FiniteDuration
val connectMaxRetries: Int
val disconnectPoisonPillTimeout: FiniteDuration
val waitForHelloTimeout: FiniteDuration
val waitForStatusTimeout: FiniteDuration
val waitForChainCheckTimeout: FiniteDuration
val fastSyncHostConfiguration: FastSyncHostConfiguration
val rlpxConfiguration: RLPxConfiguration
val maxPeers: Int
val maxIncomingPeers: Int
val networkId: Int
val updateNodesInitialDelay: FiniteDuration
val updateNodesInterval: FiniteDuration
}

trait FastSyncHostConfiguration {
val maxBlocksHeadersPerMessage: Int
val maxBlocksBodiesPerMessage: Int
val maxReceiptsPerMessage: Int
val maxMptComponentsPerMessage: Int
}
}

8 changes: 5 additions & 3 deletions khipu-eth/src/main/scala/khipu/network/rlpx/BluePrint.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import akka.stream.scaladsl.GraphDSL
import akka.stream.scaladsl.MergePreferred
import akka.stream.scaladsl.Source
import akka.util.ByteString
import khipu.network
import khipu.network.Control
import khipu.network.Peer
import khipu.network.Tick
import khipu.network.handshake.EtcHandshake
import khipu.network.p2p.Message
import khipu.network.p2p.MessageDecoder
Expand All @@ -35,12 +37,12 @@ object BluePrint {
Flow.fromGraph(GraphDSL.create() { implicit builder =>
import GraphDSL.Implicits._

val control = builder.add(Source.tick(0.seconds, 1.millis, Left(network.Tick)).buffer(1, OverflowStrategy.dropNew))
val control = builder.add(Source.tick(0.seconds, 1.millis, Left(Tick)).buffer(1, OverflowStrategy.dropNew))
val incoming = builder.add(Flow[ByteString])
val wireStage = builder.add(new WireStage())
val rlpxFlow = builder.add(Flow.fromGraph(new RLPxStage(peer, messageDecoder, protocolVersion, authHandshake, handshake)))

val merge = builder.add(MergePreferred[Either[network.Control, ByteString]](1))
val merge = builder.add(MergePreferred[Either[Control, ByteString]](1))

incoming ~> wireStage ~> merge.preferred
control ~> merge.in(0)
Expand Down
4 changes: 3 additions & 1 deletion khipu-eth/src/main/scala/khipu/network/rlpx/RLPx.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ import akka.stream.scaladsl.Sink
import akka.stream.scaladsl.Source
import akka.stream.scaladsl.Tcp
import java.net.InetSocketAddress
import khipu.network
import khipu.network.IncomingPeer
import khipu.network.OutgoingPeer
import khipu.network.Peer
import khipu.network.handshake.EtcHandshake
import khipu.network.p2p.Message
import khipu.network.p2p.MessageDecoder
Expand Down
6 changes: 6 additions & 0 deletions khipu-eth/src/main/scala/khipu/network/rlpx/RLPxStage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ import akka.util.ByteStringBuilder
import java.util.concurrent.atomic.AtomicInteger
import khipu.blockchain.sync.SyncService
import khipu.network.Control
import khipu.network.IncomingPeer
import khipu.network.KnownNodesService
import khipu.network.OutgoingPeer
import khipu.network.Peer
import khipu.network.PeerEntity
import khipu.network.PeerManager
import khipu.network.Tick
import khipu.network.WireDisconnected
import khipu.network.handshake.EtcHandshake
Expand Down
29 changes: 0 additions & 29 deletions khipu-eth/src/main/scala/khipu/network/rlpx/package.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package khipu.network

import org.spongycastle.crypto.digests.KeccakDigest
import scala.concurrent.duration.FiniteDuration

package object rlpx {
final case class Secrets(
Expand All @@ -11,32 +10,4 @@ package object rlpx {
egressMac: KeccakDigest,
ingressMac: KeccakDigest
)

trait RLPxConfiguration {
val waitForHandshakeTimeout: FiniteDuration
val waitForTcpAckTimeout: FiniteDuration
}

trait PeerConfiguration {
val connectRetryDelay: FiniteDuration
val connectMaxRetries: Int
val disconnectPoisonPillTimeout: FiniteDuration
val waitForHelloTimeout: FiniteDuration
val waitForStatusTimeout: FiniteDuration
val waitForChainCheckTimeout: FiniteDuration
val fastSyncHostConfiguration: FastSyncHostConfiguration
val rlpxConfiguration: RLPxConfiguration
val maxPeers: Int
val maxIncomingPeers: Int
val networkId: Int
val updateNodesInitialDelay: FiniteDuration
val updateNodesInterval: FiniteDuration
}

trait FastSyncHostConfiguration {
val maxBlocksHeadersPerMessage: Int
val maxBlocksBodiesPerMessage: Int
val maxReceiptsPerMessage: Int
val maxMptComponentsPerMessage: Int
}
}
4 changes: 2 additions & 2 deletions khipu-eth/src/main/scala/khipu/service/ServiceBoard.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ import khipu.crypto
import khipu.domain.Blockchain
import khipu.ledger.Ledger
import khipu.network.ForkResolver
import khipu.network.KnownNodesService.KnownNodesServiceConfig
import khipu.network.PeerManager
import khipu.network.p2p.MessageDecoder
import khipu.network.p2p.messages.Versions
import khipu.network.rlpx.KnownNodesService.KnownNodesServiceConfig
import khipu.network.rlpx.PeerManager
import khipu.network.rlpx.discovery.DiscoveryConfig
import khipu.storage.Storages
import khipu.storage.datasource.KesqueLmdbDataSources
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import khipu.ProcessedTransactions
import khipu.blockchain.sync
import khipu.config.TxPoolConfig
import khipu.domain.SignedTransaction
import khipu.network.PeerEntity
import khipu.network.p2p.messages.CommonMessages.SignedTransactions
import khipu.network.rlpx.PeerEntity
import scala.concurrent.duration._

object PendingTransactionsService {
Expand Down

0 comments on commit 621ee01

Please sign in to comment.