slashing

package
v0.18.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2018 License: Apache-2.0 Imports: 17 Imported by: 1,495

Documentation

Overview

nolint

Index

Constants

View Source
const (
	// MaxEvidenceAge - Max age for evidence - 21 days (3 weeks)
	// TODO Should this be a governance parameter or just modifiable with SoftwareUpgradeProposals?
	// MaxEvidenceAge = 60 * 60 * 24 * 7 * 3
	// TODO Temporarily set to 2 minutes for testnets.
	MaxEvidenceAge int64 = 60 * 2

	// SignedBlocksWindow - sliding window for downtime slashing
	// TODO Governance parameter?
	// TODO Temporarily set to 100 blocks for testnets
	SignedBlocksWindow int64 = 100

	// Downtime slashing threshold - 50%
	// TODO Governance parameter?
	MinSignedPerWindow int64 = SignedBlocksWindow / 2

	// Downtime unbond duration
	// TODO Governance parameter?
	// TODO Temporarily set to 10 minutes for testnets
	DowntimeUnbondDuration int64 = 60 * 10
)
View Source
const MsgType = "slashing"

name to identify transaction types

Variables

View Source
var (
	// SlashFractionDoubleSign - currently 5%
	// TODO Governance parameter?
	SlashFractionDoubleSign = sdk.NewRat(1).Quo(sdk.NewRat(20))

	// SlashFractionDowntime - currently 1%
	// TODO Governance parameter?
	SlashFractionDowntime = sdk.NewRat(1).Quo(sdk.NewRat(100))
)

Functions

func BeginBlocker

func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, sk Keeper) (tags sdk.Tags)

slashing begin block functionality

func ErrBadValidatorAddr

func ErrBadValidatorAddr(codespace sdk.CodespaceType) sdk.Error

func ErrNoValidatorForAddress

func ErrNoValidatorForAddress(codespace sdk.CodespaceType) sdk.Error

func ErrValidatorJailed

func ErrValidatorJailed(codespace sdk.CodespaceType) sdk.Error

func GetValidatorSigningBitArrayKey added in v0.18.0

func GetValidatorSigningBitArrayKey(v sdk.Address, i int64) []byte

Stored by *validator* address (not owner address)

func GetValidatorSigningInfoKey added in v0.18.0

func GetValidatorSigningInfoKey(v sdk.Address) []byte

Stored by *validator* address (not owner address)

func NewHandler

func NewHandler(k Keeper) sdk.Handler

func RegisterWire added in v0.18.0

func RegisterWire(cdc *wire.Codec)

Register concrete types on wire codec

Types

type CodeType added in v0.18.0

type CodeType = sdk.CodeType

Local code type

const (
	// Default slashing codespace
	DefaultCodespace sdk.CodespaceType = 10

	// Invalid validator
	CodeInvalidValidator CodeType = 201
	// Validator jailed
	CodeValidatorJailed CodeType = 202
)

type Keeper

type Keeper struct {
	// contains filtered or unexported fields
}

Keeper of the slashing store

func NewKeeper

func NewKeeper(cdc *wire.Codec, key sdk.StoreKey, vs sdk.ValidatorSet, codespace sdk.CodespaceType) Keeper

NewKeeper creates a slashing keeper

type MsgUnrevoke added in v0.18.0

type MsgUnrevoke struct {
	ValidatorAddr sdk.Address `json:"address"` // address of the validator owner
}

MsgUnrevoke - struct for unrevoking revoked validator

func NewMsgUnrevoke added in v0.18.0

func NewMsgUnrevoke(validatorAddr sdk.Address) MsgUnrevoke

func (MsgUnrevoke) GetSignBytes added in v0.18.0

func (msg MsgUnrevoke) GetSignBytes() []byte

get the bytes for the message signer to sign on

func (MsgUnrevoke) GetSigners added in v0.18.0

func (msg MsgUnrevoke) GetSigners() []sdk.Address

func (MsgUnrevoke) Type added in v0.18.0

func (msg MsgUnrevoke) Type() string

nolint

func (MsgUnrevoke) ValidateBasic added in v0.18.0

func (msg MsgUnrevoke) ValidateBasic() sdk.Error

quick validity check

type ValidatorSigningInfo

type ValidatorSigningInfo struct {
	StartHeight         int64 `json:"start_height"`          // height at which validator was first a candidate OR was unrevoked
	IndexOffset         int64 `json:"index_offset"`          // index offset into signed block bit array
	JailedUntil         int64 `json:"jailed_until"`          // timestamp validator cannot be unrevoked until
	SignedBlocksCounter int64 `json:"signed_blocks_counter"` // signed blocks counter (to avoid scanning the array every time)
}

Signing info for a validator

func (ValidatorSigningInfo) HumanReadableString added in v0.18.0

func (i ValidatorSigningInfo) HumanReadableString() string

Return human readable signing info

Directories

Path Synopsis
client
cli

Jump to

Keyboard shortcuts

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