Documentation ¶
Index ¶
- Constants
- Variables
- func CheckProgress()
- func DeepCopyByGob(src, dst interface{}) error
- func NewBlockSyncerModular(app *gfspapp.GfSpBaseApp, cfg *gfspconfig.GfSpConfig) (coremodule.Modular, error)
- func NewIndexer(codec codec.Codec, proxy node.Node, db database.Database, ...) parser.Indexer
- func StopMainService() error
- func SwitchMasterDBFlag() error
- type BlockSyncerModular
- func (b *BlockSyncerModular) Name() string
- func (b *BlockSyncerModular) ReleaseResource(ctx context.Context, span rcmgr.ResourceScopeSpan)
- func (b *BlockSyncerModular) ReserveResource(ctx context.Context, state *rcmgr.ScopeStat) (rcmgr.ResourceScopeSpan, error)
- func (b *BlockSyncerModular) Start(ctx context.Context) error
- func (b *BlockSyncerModular) Stop(ctx context.Context) error
- type Impl
- func (i *Impl) CreateMasterTable() error
- func (i *Impl) ExportAccounts(block *coretypes.ResultBlock, txs []*types.Tx) error
- func (i *Impl) ExportBlock(block *coretypes.ResultBlock, events *coretypes.ResultBlockResults, ...) error
- func (i *Impl) ExportCommit(block *coretypes.ResultBlock, vals *coretypes.ResultValidators) error
- func (i *Impl) ExportEpoch(block *coretypes.ResultBlock) error
- func (i *Impl) ExportEvents(ctx context.Context, block *coretypes.ResultBlock, ...) error
- func (i *Impl) ExportEventsInTxs(ctx context.Context, block *coretypes.ResultBlock, txs []*types.Tx) error
- func (i *Impl) ExportEventsWithoutTx(ctx context.Context, block *coretypes.ResultBlock, events []abci.Event) error
- func (i *Impl) ExportTxs(block *coretypes.ResultBlock, txs []*types.Tx) error
- func (i *Impl) ExportValidators(block *coretypes.ResultBlock, vals *coretypes.ResultValidators) error
- func (i *Impl) GetBlockRecordNum(_ context.Context) int64
- func (i *Impl) GetCatchUpFlag() *atomic.Value
- func (i *Impl) GetLastBlockRecordHeight(ctx context.Context) (uint64, error)
- func (i *Impl) GetLatestBlockHeight() *atomic.Value
- func (i *Impl) GetServiceName() string
- func (i *Impl) HandleBlock(block *coretypes.ResultBlock, events *coretypes.ResultBlockResults, ...)
- func (i *Impl) HandleEvent(ctx context.Context, block *coretypes.ResultBlock, txHash common.Hash, ...) error
- func (i *Impl) HandleGenesis(genesisDoc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error
- func (i *Impl) HandleMessage(block *coretypes.ResultBlock, index int, msg sdk.Msg, tx *types.Tx)
- func (i *Impl) HandleTx(tx *types.Tx)
- func (i *Impl) Process(height uint64) error
- func (i *Impl) Processed(ctx context.Context, height uint64) (bool, error)
- type MigrateDBKey
Constants ¶
const ( // MaxRetryCount defines getting the latest height from the RPC client max retry count MaxRetryCount = 50 // DefaultBlockHeightDiff defines default block height diff of main and backup service DefaultBlockHeightDiff = 100 // DefaultCheckDiffPeriod defines check interval of block height diff DefaultCheckDiffPeriod = 1 // MaxHeightGapFactor defines the gap coefficient between the block height in the Map and the processed block height MaxHeightGapFactor = 4 )
Variables ¶
var ( BlockSyncerModularName = strings.ToLower("BlockSyncer") BlockSyncerModularDescription = "Synchronize data on the chain to SP" BlockSyncerModularBackupName = strings.ToLower("BlockSyncerBackup") // DsnBlockSyncer defines env variable name for block syncer dsn DsnBlockSyncer = "BLOCK_SYNCER_DSN" // DsnBlockSyncerSwitched defines env variable name for block syncer backup dsn DsnBlockSyncerSwitched = "BLOCK_SYNCER_DSN_SWITCHED" ErrDSNNotSet = errors.New("dsn config is not set in environment") ErrBlockNotFound = errors.New("failed to get block from map need retry") )
var ( MainService *BlockSyncerModular BackupService *BlockSyncerModular FlagDB *db.DB NeedBackup bool CancelMain func() CtxMain context.Context )
Read concurrency required global variables
Functions ¶
func CheckProgress ¶
func CheckProgress()
func DeepCopyByGob ¶
func DeepCopyByGob(src, dst interface{}) error
func NewBlockSyncerModular ¶
func NewBlockSyncerModular(app *gfspapp.GfSpBaseApp, cfg *gfspconfig.GfSpConfig) (coremodule.Modular, error)
func NewIndexer ¶
func StopMainService ¶
func StopMainService() error
func SwitchMasterDBFlag ¶
func SwitchMasterDBFlag() error
Types ¶
type BlockSyncerModular ¶
type BlockSyncerModular struct {
// contains filtered or unexported fields
}
BlockSyncerModular synchronizes storage,payment,permission data to db by handling related events
func (*BlockSyncerModular) Name ¶
func (b *BlockSyncerModular) Name() string
func (*BlockSyncerModular) ReleaseResource ¶
func (b *BlockSyncerModular) ReleaseResource(ctx context.Context, span rcmgr.ResourceScopeSpan)
func (*BlockSyncerModular) ReserveResource ¶
func (b *BlockSyncerModular) ReserveResource(ctx context.Context, state *rcmgr.ScopeStat) (rcmgr.ResourceScopeSpan, error)
type Impl ¶
type Impl struct { Modules []modules.Module Node node.Node DB database.Database LatestBlockHeight atomic.Value CatchUpFlag atomic.Value ProcessedHeight uint64 ServiceName string // contains filtered or unexported fields }
func (*Impl) CreateMasterTable ¶
func (*Impl) ExportAccounts ¶
ExportAccounts accepts a slice of transactions and persists accounts inside the database. An error is returned if write fails.
func (*Impl) ExportBlock ¶
func (i *Impl) ExportBlock(block *coretypes.ResultBlock, events *coretypes.ResultBlockResults, txs []*types.Tx, vals *coretypes.ResultValidators) error
ExportBlock accepts a finalized block and persists then inside the database. An error is returned if write fails.
func (*Impl) ExportCommit ¶
func (i *Impl) ExportCommit(block *coretypes.ResultBlock, vals *coretypes.ResultValidators) error
ExportCommit accepts ResultValidators and persists validator commit signatures inside the database. An error is returned if write fails.
func (*Impl) ExportEpoch ¶
func (i *Impl) ExportEpoch(block *coretypes.ResultBlock) error
ExportEpoch accept a block result data and persist basic info into db to record current sync progress
func (*Impl) ExportEvents ¶
func (i *Impl) ExportEvents(ctx context.Context, block *coretypes.ResultBlock, events *coretypes.ResultBlockResults) error
ExportEvents accepts a slice of transactions and get events in order to save in database.
func (*Impl) ExportEventsInTxs ¶
func (i *Impl) ExportEventsInTxs(ctx context.Context, block *coretypes.ResultBlock, txs []*types.Tx) error
ExportEventsInTxs accepts a slice of events in tx in order to save in database.
func (*Impl) ExportEventsWithoutTx ¶
func (i *Impl) ExportEventsWithoutTx(ctx context.Context, block *coretypes.ResultBlock, events []abci.Event) error
ExportEventsWithoutTx accepts a slice of events not in tx in order to save in database. events here don't have txHash
func (*Impl) ExportTxs ¶
ExportTxs accepts a slice of transactions and persists then inside the database. An error is returned if write fails.
func (*Impl) ExportValidators ¶
func (i *Impl) ExportValidators(block *coretypes.ResultBlock, vals *coretypes.ResultValidators) error
ExportValidators accepts ResultValidators and persists validators inside the database. An error is returned if write fails.
func (*Impl) GetBlockRecordNum ¶
GetBlockRecordNum returns total number of blocks stored in database.
func (*Impl) GetCatchUpFlag ¶
func (*Impl) GetLastBlockRecordHeight ¶
GetLastBlockRecordHeight returns the last block height stored inside the database
func (*Impl) GetLatestBlockHeight ¶
func (*Impl) GetServiceName ¶
func (*Impl) HandleBlock ¶
func (i *Impl) HandleBlock(block *coretypes.ResultBlock, events *coretypes.ResultBlockResults, txs []*types.Tx, vals *coretypes.ResultValidators)
HandleBlock accepts block and calls the block handlers.
func (*Impl) HandleEvent ¶
func (i *Impl) HandleEvent(ctx context.Context, block *coretypes.ResultBlock, txHash common.Hash, event sdk.Event) error
HandleEvent accepts the transaction and handles events contained inside the transaction.
func (*Impl) HandleGenesis ¶
func (i *Impl) HandleGenesis(genesisDoc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error
HandleGenesis accepts a GenesisDoc and calls all the registered genesis handlers in the order in which they have been registered.
func (*Impl) HandleMessage ¶
HandleMessage accepts the transaction and handles messages contained inside the transaction.
type MigrateDBKey ¶
type MigrateDBKey struct{}