spv

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2019 License: GPL-3.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultConfigFilename = "./spvconfig.json"
	Foundation            = "Foundation"
	CRCAddress            = "CRCAddress"
	GenesisBlock          = "GenesisBlock"
	PowLimit              = "PowLimit"
)
View Source
const (

	//Unprocessed refill transaction index prefix
	UnTransaction string = "UnT-"

	//Cross-chain recharge unprocessed transaction index
	UnTransactionIndex = "UnTI"

	//Cross-chain recharge unprocessed transaction seek
	UnTransactionSeek = "UnTS"
)
View Source
const LogPath = "./logs-spv/"

Variables

View Source
var (
	SpvService *Service

	MinedBlockSub *event.TypeMuxSubscription
	Signers       map[ethCommon.Address]struct{} // Set of authorized signers at this moment
)

Functions

func FindOutputFeeAndaddressByTxHash

func FindOutputFeeAndaddressByTxHash(transactionHash string) (*big.Int, ethCommon.Address, *big.Int)

FindOutputFeeAndaddressByTxHash Finds the eth recharge address, recharge amount, and transaction fee based on the main chain hash.

func GetUnTransactionNum

func GetUnTransactionNum(db DatabaseReader, Prefix string) uint64

func IteratorUnTransaction

func IteratorUnTransaction(from ethCommon.Address)

IteratorUnTransaction iterates before mining and processes existing spv refill transactions

func ResetConfigWithReflect added in v0.0.2

func ResetConfigWithReflect(params *config.Params, spvConfig *spv.Config)

func SendTransaction

func SendTransaction(from ethCommon.Address, elaTx string, fee *big.Int)

SendTransaction sends a reload transaction to txpool

func SpvDbInit

func SpvDbInit(spvdataDir string)

Spv database initialization

func UpTransactionIndex

func UpTransactionIndex(elaTx string)

UpTransactionIndex records spv-aware refill transaction index

Types

type Config

type Config struct {
	// DataDir is the data path to store db files peer addresses etc.
	DataDir string

	// ActiveNet indicates the ELA network to connect with.
	ActiveNet string

	// GenesisAddress is the address generated by the side chain genesis block.
	GenesisAddress string
}

type Configuration

type Configuration struct {
	// Exegesis in file Elastos.ELA/common/config/params.go
	Magic                    uint32         `json:"Magic"`
	DefaultPort              uint16         `json:"DefaultPort"`
	DNSSeeds                 []string       `json:"DNSSeeds"`
	ListenAddrs              []string       `json:"ListenAddrs"`
	Foundation               string         `json:"Foundation"`
	CRCAddress               string         `json:"CRCAddress"`
	PowLimit                 *big.Int       `json:"PowLimit"`
	PowLimitBits             uint32         `json:"PowLimitBits"`
	TargetTimespan           time.Duration  `json:"TargetTimespan"`
	TargetTimePerBlock       time.Duration  `json:"TargetTimePerBlock"`
	AdjustmentFactor         int64          `json:"AdjustmentFactor"`
	RewardPerBlock           common.Fixed64 `json:"RewardPerBlock"`
	CoinbaseMaturity         uint32         `json:"CoinbaseMaturity"`
	DisableTxFilters         bool           `json:"DisableTxFilters"`
	MinTransactionFee        common.Fixed64 `json:"MinTransactionFee"`
	MinCrossChainTxFee       common.Fixed64 `json:"MinCrossChainTxFee"`
	OriginArbiters           []string       `json:"OriginArbiters"`
	CheckAddressHeight       uint32         `json:"CheckAddressHeight"`
	VoteStartHeight          uint32         `json:"VoteStartHeight"`
	CRCOnlyDPOSHeight        uint32         `json:"CRCOnlyDPOSHeight"`
	PublicDPOSHeight         uint32         `json:"PublicDPOSHeight"`
	CRCArbiters              []string       `json:"CRCArbiters"`
	DPoSMagic                uint32         `json:"DPoSMagic"`
	DPoSDefaultPort          uint16         `json:"DPoSDefaultPort"`
	PreConnectOffset         uint32         `json:"PreConnectOffset"`
	GeneralArbiters          int            `json:"GeneralArbiters"`
	CandidateArbiters        int            `json:"CandidateArbiters"`
	ToleranceDuration        time.Duration  `json:"ToleranceDuration"`
	MaxInactiveRounds        uint32         `json:"MaxInactiveRounds"`
	InactivePenalty          common.Fixed64 `json:"InactivePenalty"`
	EmergencyInactivePenalty common.Fixed64 `json:"EmergencyInactivePenalty"`
	MaxLogsSize              int64          `json:"MaxLogsSize"`
	MaxPerLogSize            int64          `json:"MaxPerLogSize"`
	SpvPrintLevel            uint32         `json:"SpvPrintLevel"`
	PermanentPeers           []string       `json:"PermanentPeers"`
}

type DatabaseReader

type DatabaseReader interface {
	Get(key []byte) (value []byte, err error)
}

DatabaseReader wraps the Get method of a backing data store.

type PreferParams added in v0.0.2

type PreferParams struct {
	Config Configuration `json:"Configuration"`
}
var PreferConfig PreferParams

type Service

type Service struct {
	spv.SPVService
}

func NewService

func NewService(cfg *Config, s *node.Node) (*Service, error)

Spv service initialization

func (*Service) GetDatabase

func (s *Service) GetDatabase() *ethdb.LDBDatabase

func (*Service) VerifyElaHeader

func (s *Service) VerifyElaHeader(hash *common.Uint256) error

func (*Service) VerifyTransaction

func (s *Service) VerifyTransaction(tx *types.Transaction) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL