slashing

package
v0.24.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2018 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

nolint

Index

Constants

View Source
const (
	MaxEvidenceAgeKey           = "slashing/MaxEvidenceAge"
	SignedBlocksWindowKey       = "slashing/SignedBlocksWindow"
	MinSignedPerWindowKey       = "slashing/MinSignedPerWindow"
	DoubleSignUnbondDurationKey = "slashing/DoubleSignUnbondDuration"
	DowntimeUnbondDurationKey   = "slashing/DowntimeUnbondDuration"
	SlashFractionDoubleSignKey  = "slashing/SlashFractionDoubleSign"
	SlashFractionDowntimeKey    = "slashing/SlashFractionDowntime"
)

nolint

View Source
const MsgType = "slashing"

name to identify transaction types

Variables

This section is empty.

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

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 InitGenesis

func InitGenesis(ctx sdk.Context, keeper Keeper, data types.GenesisState)

InitGenesis initializes the keeper's address to pubkey map.

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, params params.Getter, codespace sdk.CodespaceType) Keeper

NewKeeper creates a slashing keeper

func (Keeper) AddValidators

func (k Keeper) AddValidators(ctx sdk.Context, vals []abci.Validator)

AddValidators adds the validators to the keepers validator addr to pubkey mapping.

func (Keeper) DoubleSignUnbondDuration

func (k Keeper) DoubleSignUnbondDuration(ctx sdk.Context) time.Duration

Double-sign unbond duration

func (Keeper) DowntimeUnbondDuration

func (k Keeper) DowntimeUnbondDuration(ctx sdk.Context) time.Duration

Downtime unbond duration

func (Keeper) MaxEvidenceAge

func (k Keeper) MaxEvidenceAge(ctx sdk.Context) time.Duration

MaxEvidenceAge - Max age for evidence - 21 days (3 weeks) MaxEvidenceAge = 60 * 60 * 24 * 7 * 3

func (Keeper) MinSignedPerWindow

func (k Keeper) MinSignedPerWindow(ctx sdk.Context) int64

Downtime slashing thershold - default 50%

func (Keeper) SignedBlocksWindow

func (k Keeper) SignedBlocksWindow(ctx sdk.Context) int64

SignedBlocksWindow - sliding window for downtime slashing

func (Keeper) SlashFractionDoubleSign

func (k Keeper) SlashFractionDoubleSign(ctx sdk.Context) sdk.Rat

SlashFractionDoubleSign - currently default 5%

func (Keeper) SlashFractionDowntime

func (k Keeper) SlashFractionDowntime(ctx sdk.Context) sdk.Rat

SlashFractionDowntime - currently default 1%

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         time.Time `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 time.Time, 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