Documentation
¶
Index ¶
- Constants
- Variables
- func AddGenesisAccountCmd(ctx *app.Context, cdc *codec.Codec) *cobra.Command
- func AddGenesisShardCmd(ctx *app.Context, cdc *codec.Codec) *cobra.Command
- func AddGenesisValidatorCmd(ctx *app.Context, cdc *codec.Codec) *cobra.Command
- func AddServerCommands(ctx *app.Context, cdc *amino.Codec, rootCmd *cobra.Command, ...)
- func CopyFile(src, dst string) error
- func ExportCmd(appExporter app.AppExporter, defaultNodeHome string) *cobra.Command
- func GetVersion() string
- func InitWithConfig(cdc *amino.Codec, appInit app.AppInit, c *cfg.Config, initConfig InitConfig) (chainID string, nodeID string, appMessage json.RawMessage, ...)
- func MustSortJSON(toSortJSON []byte) []byte
- func ParseAccAddress(addr string) types.AccAddress
- func ParseCoin(denom, amount string) (types.Coin, error)
- func SortJSON(toSortJSON []byte) ([]byte, error)
- func StartInProcess(ctx *app.Context, appCreator app.AppCreator, cdc *codec.Codec) (*node.Node, error)
- type GenesisTx
- type InitConfig
- type ValidatorAccount
Constants ¶
View Source
const ( FlagHeight = "height" FlagForZeroHeight = "for-zero-height" FlagJailAllowedAddrs = "jail-allowed-addrs" )
Variables ¶
View Source
var ( FlagName = "name" FlagClientHome = "home-client" FlagOWK = "owk" )
View Source
var ( FlagOverwrite = "overwrite" FlagWithTxs = "with-txs" FlagIP = "ip" FlagChainID = "chain_id" FlagStateDB = "statedb" //FlagDBName = "dbname" FlagWithValidator = "validator_key" FlagCoinName = "denom" )
Functions ¶
func AddGenesisAccountCmd ¶
func AddGenesisShardCmd ¶
func AddGenesisValidatorCmd ¶
func AddServerCommands ¶
func ExportCmd ¶ added in v1.5.23
func ExportCmd(appExporter app.AppExporter, defaultNodeHome string) *cobra.Command
func InitWithConfig ¶
func InitWithConfig(cdc *amino.Codec, appInit app.AppInit, c *cfg.Config, initConfig InitConfig) ( chainID string, nodeID string, appMessage json.RawMessage, pubKey crypto.PubKey, err error)
func InitWithConfig(cdc *amino.Codec, appInit app.AppInit, c *cfg.Config, initConfig InitConfig)(
chainID string, nodeID string, appMessage json.RawMessage, pubKey string, err error) {
var validatorKey secp256k1.PrivKeySecp256k1
var privStr string
nodeKey, err := node.LoadNodeKey(c.NodeKeyFile())
privBz := viper.GetString(FlagWithValidator)
if len(privBz) > 0 {
//1.match length
priByt := []byte(privBz)
length := len(priByt)
if length != 44 {
panic(errors.New(fmt.Sprintf("length of validator key does not match, expected %d, got %d",44 ,length)))
}
//2.regex match
rule := `=$`
reg := regexp.MustCompile(rule)
if !reg.MatchString(privBz) {
panic(errors.New("the end of the validator key string should be an equal sign"))
}
//3.match base64 encoding
_,err := base64.StdEncoding.DecodeString(privBz)
if err != nil {
panic(err)
}
privStr = fmt.Sprintf(`{"type":"%s","value":"%s"}`, secp256k1.PrivKeyAminoName, privBz)
err = cdc.UnmarshalJSON([]byte(privStr), &validatorKey)
if err != nil {
panic(err)
}
}else {
panic(errors.New("validator key can not be empty"))
}
pv := validator.GenFilePV(
c.PrivValidatorKeyFile(),
c.PrivValidatorStateFile(),
validatorKey,
)
nodeKey, err = node.GenNodeKeyByPrivKey(c.NodeKeyFile(), pv.Key.PrivKey)
if err != nil {
panic(err)
}
nodeID = string(nodeKey.ID())
chainID = initConfig.ChainID
genFile := c.GenesisFile()
if !initConfig.Overwrite && cmn.FileExists(genFile) {
err = fmt.Errorf("genesis.json file already exists: %v", genFile)
return
}
validator := appInit.GetValidator(nodeKey.PubKey(), viper.GetString(FlagName))
validators := []tmtypes.GenesisValidator{validator}
appState, err := appInit.AppGenState(validators)
if err != nil {
return
}
err = writeGenesisFile(cdc, genFile, initConfig.ChainID, validators, appState, initConfig.GenesisTime)
if err != nil {
return
}
return
}
func MustSortJSON ¶ added in v1.5.23
MustSortJSON is like SortJSON but panic if an error occurs, e.g., if the passed JSON isn't valid.
func ParseAccAddress ¶
func ParseAccAddress(addr string) types.AccAddress
Types ¶
type GenesisTx ¶
type GenesisTx struct {
NodeID string `json:"node_id"`
IP string `json:"ip"`
Validator tmtypes.GenesisValidator `json:"validator"`
AppGenTx json.RawMessage `json:"app_gen_tx"`
}
type InitConfig ¶
type ValidatorAccount ¶
Click to show internal directories.
Click to hide internal directories.