Home Reference Source Test
public class | source

LightConsensusAgent

Extends:

ObservableBaseConsensusAgentFullConsensusAgent → LightConsensusAgent

Constructor Summary

Public Constructor
public

constructor(blockchain: LightChain, mempool: Mempool, time: Time, peer: Peer, invRequestManager: InvRequestManager, targetSubscription: Subscription)

Member Summary

Public Members
public get

syncing: boolean

Method Summary

Public Methods
public

getHeader(hash: Hash): Promise<BlockHeader>

public

async syncBlockchain(): Promise<void>

Protected Methods
protected

_onClose(): void

protected

_onHeader(msg: HeaderMessage): void

protected

async _onKnownBlockAnnounced(hash: Hash, block: Block): void

protected

async _processBlock(hash: Hash, block: Block): Promise<void>

Inherited Summary

From class Observable
public static get

WILDCARD: string: string

public

bubble(observable: Observable, types: ...string)

public

fire(type: string, args: ...*): Promise | null

public

off(type: string, id: number)

public

on(type: string, callback: Function): number

From class BaseConsensusAgent
public get
public get

synced: boolean

public get

syncing: boolean

public

getBlockProof(blockHashToProve: Hash, knownBlock: Block): Promise<Block>

public
public

getTransactionsProof(block: Block, addresses: Array<Address>): Promise<Array<Transaction>>

public

knowsBlock(blockHash: Hash): boolean

public
public

relayBlock(block: Block): boolean

public

relayTransaction(transaction: Transaction): boolean

public
public
public

subscribe(subscription: Subscription)

protected

_doRequestData(vectors: Array<InvVector>): void

protected abstract

_getBlock(hash: Hash, includeForks: boolean, includeBody: boolean): PromiseBlock>

protected abstract

_getRawBlock(hash: Hash, includeForks: boolean): PromiseUint8Array>

protected abstract

_getTransaction(hash: Hash): PromiseTransaction>

protected

_noMoreData(): void

protected
protected
protected

async _onBlock(msg: BlockMessage): Promise<void>

protected

_onClose(): void

protected

async _onGetData(msg: GetDataMessage): Promise

protected

async _onGetHeader(msg: GetHeaderMessage): Promise

protected

async _onHeader(msg: HeaderMessage): Promise<void>

protected

async _onInv(msg: InvMessage): Promise<void>

protected

_onKnownBlockAnnounced(hash: Hash, block: Block): void

protected

_onKnownTransactionAnnounced(hash: Hash, transaction: Transaction): void

protected

_onNewBlockAnnounced(hash: Hash): void

protected
protected
protected
protected

_onObjectProcessed(vector: InvVector): void

protected

_onObjectReceived(vector: InvVector): void

protected
protected

async _onTx(msg: TxMessage): Promise

protected

async _processBlock(hash: Hash, block: Block): Promise<void>

protected

async _processHeader(hash: Hash, header: BlockHeader): Promise<void>

protected

async _processTransaction(hash: Hash, transaction: Transaction): Promise<void>

protected

_requestData(): void

protected

_shouldRequestData(vector: InvVector): boolean

From class FullConsensusAgent
public get

syncing: boolean

public

async syncBlockchain()

protected

_getBlock(hash: Hash, includeForks: boolean, includeBody: boolean): PromiseBlock>

protected

_getRawBlock(hash: Hash, includeForks: boolean): PromiseUint8Array>

protected

_getTransaction(hash: Hash): PromiseTransaction>

protected
protected
protected

_onHeader(msg: HeaderMessage): Promise<void>

protected

_onInv(msg: InvMessage): Promise

protected

async _onKnownBlockAnnounced(hash: Hash, block: Block): void

protected
protected

_onOrphanBlock(hash: Hash, block: Block)

protected

async _processBlock(hash: Hash, block: Block): Promise<void>

protected

async _processTransaction(hash: Hash, transaction: Transaction): Promise<boolean>

protected

_shouldRequestData(vector: InvVector): boolean

Public Constructors

public constructor(blockchain: LightChain, mempool: Mempool, time: Time, peer: Peer, invRequestManager: InvRequestManager, targetSubscription: Subscription) source

Override:

FullConsensusAgent#constructor

Params:

NameTypeAttributeDescription
blockchain LightChain
mempool Mempool
time Time
peer Peer
invRequestManager InvRequestManager
targetSubscription Subscription

Public Members

public get syncing: boolean source

Override:

FullConsensusAgent#syncing

Public Methods

public getHeader(hash: Hash): Promise<BlockHeader> source

Params:

NameTypeAttributeDescription
hash Hash

Return:

Promise<BlockHeader>

public async syncBlockchain(): Promise<void> source

Override:

FullConsensusAgent#syncBlockchain

Return:

Promise<void>

Protected Methods

protected _onClose(): void source

Override:

BaseConsensusAgent#_onClose

Return:

void

protected _onHeader(msg: HeaderMessage): void source

Override:

FullConsensusAgent#_onHeader

Params:

NameTypeAttributeDescription
msg HeaderMessage

Return:

void

protected async _onKnownBlockAnnounced(hash: Hash, block: Block): void source

Override:

FullConsensusAgent#_onKnownBlockAnnounced

Params:

NameTypeAttributeDescription
hash Hash
block Block

Return:

void

protected async _processBlock(hash: Hash, block: Block): Promise<void> source

Override:

FullConsensusAgent#_processBlock

Params:

NameTypeAttributeDescription
hash Hash
block Block

Return:

Promise<void>