Documentation
¶
Index ¶
- Constants
- Variables
- func ValidateCpu(sender common.Address, blockHash []byte, nonce uint64, difficulty uint64) bool
- func ValidateMemory(sender common.Address, blockHash []byte, nonce uint64, difficulty uint64) bool
- type AdmissionApiBackend
- func (b *AdmissionApiBackend) Abort()
- func (b *AdmissionApiBackend) Apis() []rpc.API
- func (b *AdmissionApiBackend) Campaign()
- func (b *AdmissionApiBackend) GetResult() map[string]Result
- func (b *AdmissionApiBackend) GetStatus() (workStatus, error)
- func (b *AdmissionApiBackend) RegisterInProcHandler(localRPCServer *rpc.Server)
- func (b *AdmissionApiBackend) SetAdmissionKey(key *keystore.Key)
- type AdmissionControl
- func (ac *AdmissionControl) Abort()
- func (ac *AdmissionControl) Campaign()
- func (ac *AdmissionControl) DoneCh() <-chan interface{}
- func (ac *AdmissionControl) GetResult() map[string]Result
- func (ac *AdmissionControl) GetStatus() (workStatus, error)
- func (ac *AdmissionControl) SetAdmissionKey(key *keystore.Key)
- type ApiBackend
- type Config
- type ProofWork
- type Result
- type WorkStatus
Constants ¶
const ( // AcIdle status done. AcIdle workStatus = iota + 1 // AcRunning status running. AcRunning )
const ( CpuDifficulty = 3 MemoryDifficulty = 3 CpuWorkTimeout = 10 MemoryWorkTimeout = 10 )
const ( Cpu = "cpu" Memory = "memory" )
Variables ¶
var DefaultConfig = Config{ CpuDifficulty: CpuDifficulty, CpuLifeTime: time.Duration(CpuWorkTimeout * time.Second), MemoryDifficulty: MemoryDifficulty, MemoryCpuLifeTime: time.Duration(MemoryWorkTimeout * time.Second), Deposit: int64(50), NumberOfCampaignTimes: int64(1), }
DefaultConfig default admission config.
Functions ¶
func ValidateCpu ¶
Types ¶
type AdmissionApiBackend ¶
type AdmissionApiBackend struct {
// contains filtered or unexported fields
}
func (*AdmissionApiBackend) Abort ¶
func (b *AdmissionApiBackend) Abort()
func (*AdmissionApiBackend) Apis ¶
func (b *AdmissionApiBackend) Apis() []rpc.API
APIs returns the collection of RPC services the admission package offers.
func (*AdmissionApiBackend) Campaign ¶
func (b *AdmissionApiBackend) Campaign()
func (*AdmissionApiBackend) GetResult ¶
func (b *AdmissionApiBackend) GetResult() map[string]Result
func (*AdmissionApiBackend) GetStatus ¶
func (b *AdmissionApiBackend) GetStatus() (workStatus, error)
func (*AdmissionApiBackend) RegisterInProcHandler ¶
func (b *AdmissionApiBackend) RegisterInProcHandler(localRPCServer *rpc.Server)
RegisterInProcHandler registers the rpc.Server, handles RPC request to process the API requests in process
func (*AdmissionApiBackend) SetAdmissionKey ¶
func (b *AdmissionApiBackend) SetAdmissionKey(key *keystore.Key)
type AdmissionControl ¶
type AdmissionControl struct {
// contains filtered or unexported fields
}
AdmissionControl implements admission control functionality.
func NewAdmissionControl ¶
func NewAdmissionControl(chain consensus.ChainReader, address common.Address, config Config) *AdmissionControl
NewAdmissionControl returns a new Control instance.
func (*AdmissionControl) Abort ¶
func (ac *AdmissionControl) Abort()
Abort cancels all the proof work associated to the workType.
func (*AdmissionControl) Campaign ¶
func (ac *AdmissionControl) Campaign()
Campaign starts running all the proof work to generate the campaign information and waits all proof work done, send msg
func (*AdmissionControl) DoneCh ¶
func (ac *AdmissionControl) DoneCh() <-chan interface{}
func (*AdmissionControl) GetResult ¶
func (ac *AdmissionControl) GetResult() map[string]Result
GetResult gets all work proofInfo
func (*AdmissionControl) GetStatus ¶
func (ac *AdmissionControl) GetStatus() (workStatus, error)
GetStatus gets status of campaign
func (*AdmissionControl) SetAdmissionKey ¶
func (ac *AdmissionControl) SetAdmissionKey(key *keystore.Key)
SetAdmissionKey sets the key for admission control to participate campaign
type ApiBackend ¶
type ApiBackend interface {
// APIs returns the collection of RPC services the admission package offers.
Apis() []rpc.API
// Campaign starts running all the proof work to generate the campaign information and waits all proof work done, send msg
Campaign()
// Abort cancels all the proof work associated to the workType.
Abort()
// GetStatus gets status of campaign
GetStatus() (workStatus, error)
// getResult returns the work proof result
GetResult() map[string]Result
// SetAdmissionKey sets the key for admission control to participate campaign
SetAdmissionKey(key *keystore.Key)
// RegisterInProcHandler registers the rpc.Server, handles RPC request to process the API requests in process
RegisterInProcHandler(localRPCServer *rpc.Server)
}
ApiBackend interface provides the common JSON-RPC API.
func NewAdmissionApiBackend ¶
func NewAdmissionApiBackend(chain consensus.ChainReader, address common.Address, config Config) ApiBackend
type Config ¶
type Config struct {
CpuDifficulty uint64
CpuLifeTime time.Duration
MemoryDifficulty uint64
MemoryCpuLifeTime time.Duration
// Deposit to mortgage
Deposit int64
// NumberOfCampaign wants to campaign times
NumberOfCampaignTimes int64
}
Config admission control's configuration.
type ProofWork ¶
type ProofWork interface {
// contains filtered or unexported methods
}
ProofWork represent a proof work
type WorkStatus ¶
type WorkStatus = uint32