Packages

trait Node extends NodeApi with ChainQueryApi with P2PLogger

This a base trait for various kinds of nodes. It contains house keeping methods required for all nodes.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Node
  2. P2PLogger
  3. Logging
  4. ChainQueryApi
  5. NodeApi
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. implicit abstract def chainAppConfig: ChainAppConfig
  2. abstract def controlMessageHandler: ControlMessageHandler
  3. abstract def getDataMessageHandler: DataMessageHandler

    The current data message handler.

    The current data message handler. It should be noted that the dataMessageHandler contains chainstate. When we update with a new chainstate, we need to make sure we update the DataMessageHandler via updateDataMessageHandler() to make sure we don't corrupt our chainstate cache

  4. abstract def getFilterCount(): Future[Int]

    Gets the number of compact filters in the database

    Gets the number of compact filters in the database

    Definition Classes
    ChainQueryApi
  5. abstract def getFiltersBetweenHeights(startHeight: Int, endHeight: Int): Future[Vector[FilterResponse]]
    Definition Classes
    ChainQueryApi
  6. abstract def getHeightByBlockStamp(blockStamp: BlockStamp): Future[Int]

    Returns the block height of the given block stamp

    Returns the block height of the given block stamp

    Definition Classes
    ChainQueryApi
  7. implicit abstract def nodeAppConfig: NodeAppConfig
  8. abstract val peerManager: PeerManager
  9. implicit abstract def system: ActorSystem
  10. abstract def updateDataMessageHandler(dataMessageHandler: DataMessageHandler): Node

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def broadcastTransaction(transaction: Transaction): Future[Unit]

    Broadcasts the given transaction over the P2P network

    Broadcasts the given transaction over the P2P network

    Definition Classes
    NodeApi
  6. def broadcastTransactions(transactions: Vector[Transaction]): Future[Unit]

    Broadcasts the given transaction over the P2P network

    Broadcasts the given transaction over the P2P network

    Definition Classes
    NodeNodeApi
  7. def chainApiFromDb()(implicit executionContext: ExecutionContext): Future[ChainHandlerCached]

    This is constructing a chain api from disk every time we call this method This involves database calls which can be slow and expensive to construct our Blockchain

  8. def clients: Vector[P2PClient]

    Unlike our chain api, this is cached inside our node object.

    Unlike our chain api, this is cached inside our node object. Internally in p2p client you will see that the chain api is updated inside of the p2p client

  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  10. def debug(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  11. def debug(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  12. def debug(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  13. def downloadBlocks(blockHashes: Vector[DoubleSha256Digest]): Future[Unit]

    Fetches the given blocks from the peers and calls the appropriate callbacks when done.

    Fetches the given blocks from the peers and calls the appropriate callbacks when done.

    Definition Classes
    NodeNodeApi
  14. def epochSecondToBlockHeight(time: Long): Future[Int]

    Gets the block height of the closest block to the given time

    Gets the block height of the closest block to the given time

    Definition Classes
    NodeChainQueryApi
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. def error(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  18. def error(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  19. def error(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  20. implicit def executionContext: ExecutionContext
  21. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  22. def getBestBlockHash(): Future[DoubleSha256DigestBE]

    Gets the hash of the block that is what we consider "best"

    Gets the hash of the block that is what we consider "best"

    Definition Classes
    NodeChainQueryApi
  23. def getBestHashBlockHeight()(implicit ec: ExecutionContext): Future[Int]
    Definition Classes
    ChainQueryApi
  24. def getBlockHeight(blockHash: DoubleSha256DigestBE): Future[Option[Int]]

    Gets the height of the given block

    Gets the height of the given block

    Definition Classes
    NodeChainQueryApi
  25. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  26. def getMedianTimePast(): Future[Long]

    calculates the median time passed

    calculates the median time passed

    Definition Classes
    NodeChainQueryApi
  27. def getNumberOfConfirmations(blockHashOpt: DoubleSha256DigestBE): Future[Option[Int]]

    Gets number of confirmations for the given block hash

    Gets number of confirmations for the given block hash

    Definition Classes
    NodeChainQueryApi
  28. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  29. def info(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  30. def info(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  31. def info(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  32. def initializePeer(peer: Peer): Future[Unit]
  33. def isConnected(idx: Int): Future[Boolean]

    Checks if we have a tcp connection with our peer

  34. def isDebugEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  35. def isDisconnected(idx: Int): Future[Boolean]
  36. def isErrorEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  37. def isInfoEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  38. def isInitialized(idx: Int): Future[Boolean]

    Checks if we are fully initialized with our peer and have executed the handshake This means we can now send arbitrary messages to our peer

  39. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  40. def isTraceEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  41. def isWarnEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  42. def logger: Logger
    Attributes
    protected
    Definition Classes
    Logging
  43. def loggerName: String
    Attributes
    protected
    Definition Classes
    Logging
  44. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  45. def nodeCallbacks: NodeCallbacks
  46. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  47. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  48. def peerMsgSenders: Vector[PeerMessageSender]
  49. def send(msg: NetworkPayload, idx: Int): Future[Unit]

    Sends the given P2P to our peer.

    Sends the given P2P to our peer. This method is useful for playing around with P2P messages, therefore marked as private[node].

  50. def start(): Future[Node]

    Starts our node

  51. def stop(): Future[Node]

    Stops our node

  52. def sync(): Future[Unit]

    Starts to sync our node with our peer If our local best block hash is the same as our peers we will not sync, otherwise we will keep syncing until our best block hashes match up

  53. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  54. def toString(): String
    Definition Classes
    AnyRef → Any
  55. def trace(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  56. def trace(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  57. def trace(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  58. lazy val txDAO: BroadcastAbleTransactionDAO
  59. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  60. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  61. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  62. def warn(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  63. def warn(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  64. def warn(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging

Inherited from P2PLogger

Inherited from Logging

Inherited from ChainQueryApi

Inherited from NodeApi

Inherited from AnyRef

Inherited from Any

Ungrouped