admission

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2018 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AcIdle status done.
	AcIdle workStatus = iota + 1
	// AcRunning status running.
	AcRunning
)
View Source
const (
	CpuDifficulty     = 3
	MemoryDifficulty  = 3
	CpuWorkTimeout    = 10
	MemoryWorkTimeout = 10
)
View Source
const (
	Cpu    = "cpu"
	Memory = "memory"
)

Variables

View Source
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

func ValidateCpu(sender common.Address, blockHash []byte, nonce uint64, difficulty uint64) bool

func ValidateMemory

func ValidateMemory(sender common.Address, blockHash []byte, nonce uint64, difficulty uint64) bool

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 Result

type Result struct {
	BlockNumber int64  `json:"block_number"`
	Nonce       uint64 `json:"nonce"`
}

Result is admission control examination result

type WorkStatus

type WorkStatus = uint32

Jump to

Keyboard shortcuts

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