Documentation ¶
Overview ¶
包裹集团实施权威证明共识引擎。
Index ¶
- Variables
- func CalcDifficulty(snap *Snapshot, signer common.Address) *big.Int
- type API
- func (api *API) Discard(address common.Address)
- func (api *API) GetSigners(number *rpc.BlockNumber) ([]common.Address, error)
- func (api *API) GetSignersAtHash(hash common.Hash) ([]common.Address, error)
- func (api *API) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error)
- func (api *API) GetSnapshotAtHash(hash common.Hash) (*Snapshot, error)
- func (api *API) Proposals() map[common.Address]bool
- func (api *API) Propose(address common.Address, auth bool)
- type Clique
- func (c *Clique) APIs(chain consensus.ChainReader) []rpc.API
- func (c *Clique) Author(header *types.Header) (common.Address, error)
- func (c *Clique) Authorize(signer common.Address, signFn SignerFn)
- func (c *Clique) CalcDifficulty(chain consensus.ChainReader, time uint64, parent *types.Header) *big.Int
- func (c *Clique) Close() error
- func (c *Clique) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, ...) (*types.Block, error)
- func (c *Clique) Prepare(chain consensus.ChainReader, header *types.Header) error
- func (c *Clique) Seal(chain consensus.ChainReader, block *types.Block, results chan<- *types.Block, ...) error
- func (c *Clique) SealHash(header *types.Header) common.Hash
- func (c *Clique) VerifyHeader(chain consensus.ChainReader, header *types.Header, seal bool) error
- func (c *Clique) VerifyHeaders(chain consensus.ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error)
- func (c *Clique) VerifySeal(chain consensus.ChainReader, header *types.Header) error
- func (c *Clique) VerifyUncles(chain consensus.ChainReader, block *types.Block) error
- type SignerFn
- type Snapshot
- type Tally
- type Vote
Constants ¶
This section is empty.
Variables ¶
var ( //如果块的时间戳低于,则返回errInvalidTimestamp //上一个块的时间戳+最小块周期。 ErrInvalidTimestamp = errors.New("invalid timestamp") )
将块标记为无效的各种错误消息。这些应该是私人的 防止在 代码库,如果引擎被换出,则固有的中断。请把普通 共识包中的错误类型。
Functions ¶
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API是面向用户的RPC API,允许控制签名者和投票 权力证明计划的机制。
func (*API) GetSigners ¶
GetSigners检索指定块上的授权签名者列表。
func (*API) GetSignersAtHash ¶
getsignersathash检索指定块上的授权签名者列表。
func (*API) GetSnapshot ¶
func (api *API) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error)
GetSnapshot检索给定块的状态快照。
func (*API) GetSnapshotAtHash ¶
GetSnapshotatHash检索给定块的状态快照。
type Clique ¶
type Clique struct {
// contains filtered or unexported fields
}
集团是权威的证明,共识引擎建议支持 Ropsten攻击后的以太坊测试网。
func New ¶
func New(config *params.CliqueConfig, db ethdb.Database) *Clique
新创建的集团权威证明共识引擎 签名者设置为用户提供的签名者。
func (*Clique) APIs ¶
func (c *Clique) APIs(chain consensus.ChainReader) []rpc.API
API实现共识引擎,返回面向用户的RPC API以允许 控制签名者投票。
func (*Clique) CalcDifficulty ¶
func (c *Clique) CalcDifficulty(chain consensus.ChainReader, time uint64, parent *types.Header) *big.Int
计算难度是难度调整算法。它又回到了困难中 一个新的块应该基于链中以前的块和 当前签名者。
func (*Clique) Finalize ¶
func (c *Clique) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error)
完成执行共识。引擎,确保没有设置叔叔,也没有阻止 奖励,并返回最后一个块。
func (*Clique) Seal ¶
func (c *Clique) Seal(chain consensus.ChainReader, block *types.Block, results chan<- *types.Block, stop <-chan struct{}) error
seal实现共识。引擎,试图创建一个密封块使用 本地签名凭据。
func (*Clique) VerifyHeader ¶
verifyheader检查头是否符合共识规则。
func (*Clique) VerifyHeaders ¶
func (c *Clique) VerifyHeaders(chain consensus.ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error)
VerifyHeaders类似于VerifyHeader,但会验证一批头。这个 方法返回一个退出通道以中止操作,并返回一个结果通道以 检索异步验证(顺序是输入切片的顺序)。
func (*Clique) VerifySeal ¶
验证seal是否执行consension.engine,检查签名是否包含 头部满足共识协议要求。
func (*Clique) VerifyUncles ¶
verifyuncles实现converse.engine,始终返回任何 因为这个共识机制不允许叔叔。
type Snapshot ¶
type Snapshot struct { Number uint64 `json:"number"` //创建快照的块号 Hash common.Hash `json:"hash"` //创建快照的块哈希 Signers map[common.Address]struct{} `json:"signers"` //此时的授权签名人集合 Recents map[uint64]common.Address `json:"recents"` //垃圾邮件保护的最近签名者集 Votes []*Vote `json:"votes"` //按时间顺序投票的名单 Tally map[common.Address]Tally `json:"tally"` //当前投票计数以避免重新计算 // contains filtered or unexported fields }
快照是在给定时间点上投票的授权状态。