slashing

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2018 License: Apache-2.0 Imports: 17 Imported by: 6

Documentation

Overview

nolint

Index

Constants

View Source
const MsgType = "slashing"

name to identify transaction types

Variables

View Source
var (
	// 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 40000 blocks for testnets
	SignedBlocksWindow int64 = 40000

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

	// Downtime unbond duration
	// TODO Governance parameter?
	// TODO Temporarily set to five minutes for testnets
	DowntimeUnbondDuration int64 = 60 * 5

	// Double-sign unbond duration
	// TODO Governance parameter?
	// TODO Temporarily set to five minutes for testnets
	DoubleSignUnbondDuration int64 = 60 * 5
)
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 ErrValidatorNotRevoked added in v0.20.0

func ErrValidatorNotRevoked(codespace sdk.CodespaceType) sdk.Error

func GetValidatorSigningBitArrayKey added in v0.18.0

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

Stored by *validator* address (not owner address)

func GetValidatorSigningInfoKey

func GetValidatorSigningInfoKey(v sdk.ValAddress) []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

	CodeInvalidValidator    CodeType = 101
	CodeValidatorJailed     CodeType = 102
	CodeValidatorNotRevoked CodeType = 103
)

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.AccAddress `json:"address"` // address of the validator owner
}

MsgUnrevoke - struct for unrevoking revoked validator

func NewMsgUnrevoke added in v0.18.0

func NewMsgUnrevoke(validatorAddr sdk.AccAddress) 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.AccAddress

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 NewValidatorSigningInfo

func NewValidatorSigningInfo(startHeight int64, indexOffset int64, jailedUntil int64, signedBlocksCounter int64) ValidatorSigningInfo

Construct a new `ValidatorSigningInfo` struct

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