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: 0

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

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

func RegisterWire(cdc *wire.Codec)

Register concrete types on wire codec

Types

type CodeType

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

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

MsgUnrevoke - struct for unrevoking revoked validator

func NewMsgUnrevoke

func NewMsgUnrevoke(validatorAddr sdk.AccAddress) MsgUnrevoke

func (MsgUnrevoke) GetSignBytes

func (msg MsgUnrevoke) GetSignBytes() []byte

get the bytes for the message signer to sign on

func (MsgUnrevoke) GetSigners

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

func (MsgUnrevoke) Type

func (msg MsgUnrevoke) Type() string

nolint

func (MsgUnrevoke) ValidateBasic

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 added in v0.19.0

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

Construct a new `ValidatorSigningInfo` struct

func (ValidatorSigningInfo) HumanReadableString

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