mirror of https://github.com/poanetwork/gecko.git
Set up genesis for public testnet
This commit is contained in:
parent
d63375e83a
commit
cda5c95d56
|
@ -71,25 +71,35 @@ var (
|
|||
BorealisName: BorealisID,
|
||||
LocalName: LocalID,
|
||||
}
|
||||
Keys = []string{
|
||||
"ewoqjP7PxY4yr3iLTpLisriqt94hdyDFNgchSxGGztUrTXtNN",
|
||||
MintAddresses = []string{
|
||||
"95YUFjhDG892VePMzpwKF9JzewGKvGRi3",
|
||||
}
|
||||
Addresses = []string{
|
||||
"6Y3kysjF9jnHnYkdS9yGAuoHyae2eNmeV",
|
||||
FundedAddresses = []string{
|
||||
"9uKvvA7E35QCwLvAaohXTCfFejbf3Rv17",
|
||||
"JLrYNMYXANGj43BfWXBxMMAEenUBp1Sbn",
|
||||
"7TUTzwrU6nbZtWHjTHEpdneUvjKBxb3EM",
|
||||
"77mPUXBdQKwQpPoX6rckCZGLGGdkuG1G6",
|
||||
"4gGWdFZ4Gax1B466YKXyKRRpWLb42Afdt",
|
||||
"CKTkzAPsRxCreyiDTnjGxLmjMarxF28fi",
|
||||
"4ABm9gFHVtsNdcKSd1xsacFkGneSgzpaa",
|
||||
"DpL8PTsrjtLzv5J8LL3D2A6YcnCTqrNH9",
|
||||
"ZdhZv6oZrmXLyFDy6ovXAu6VxmbTsT2h",
|
||||
"6cesTteH62Y5mLoDBUASaBvCXuL2AthL",
|
||||
}
|
||||
|
||||
ParsedAddresses = []ids.ShortID{}
|
||||
StakerIDs = []string{
|
||||
"7Xhw2mDxuDS44j42TCB6U5579esbSt3Lg",
|
||||
"MFrZFVCXPv5iCn6M9K6XduxGTYp891xXZ",
|
||||
"NFBbbJ4qCmNaCzeW7sxErhvWqvEQMnYcN",
|
||||
"GWPcbFJZFfZreETSoWjPimr846mXEKCtu",
|
||||
"P7oB2McjBGgW2NXXWVYjV8JEDFoW9xDE5",
|
||||
"NX4zVkuiRJZYe6Nzzav7GXN3TakUet3Co",
|
||||
"CMsa8cMw4eib1Hb8GG4xiUKAq5eE1BwUX",
|
||||
"DsMP6jLhi1MkDVc3qx9xx9AAZWx8e87Jd",
|
||||
"N86eodVZja3GEyZJTo3DFUPGpxEEvjGHs",
|
||||
"EkKeGSLUbHrrtuayBtbwgWDRUiAziC3ao",
|
||||
}
|
||||
ParsedStakerIDs = []ids.ShortID{}
|
||||
)
|
||||
|
||||
func init() {
|
||||
for _, addrStr := range Addresses {
|
||||
for _, addrStr := range FundedAddresses {
|
||||
addr, err := ids.ShortFromString(addrStr)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -200,8 +210,12 @@ func Genesis(networkID uint32) ([]byte, error) {
|
|||
// Specify the genesis state of the AVM
|
||||
avmArgs := avm.BuildGenesisArgs{}
|
||||
{
|
||||
owners := []interface{}{avm.Owners{
|
||||
Threshold: 1,
|
||||
Minters: MintAddresses,
|
||||
}}
|
||||
holders := []interface{}(nil)
|
||||
for _, addr := range Addresses {
|
||||
for _, addr := range FundedAddresses {
|
||||
holders = append(holders, avm.Holder{
|
||||
Amount: json.Uint64(45 * units.MegaAva),
|
||||
Address: addr,
|
||||
|
@ -214,7 +228,8 @@ func Genesis(networkID uint32) ([]byte, error) {
|
|||
Symbol: "AVA",
|
||||
Denomination: 9,
|
||||
InitialState: map[string][]interface{}{
|
||||
"fixedCap": holders,
|
||||
"variableCap": owners,
|
||||
"fixedCap": holders,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -8,11 +8,9 @@ import (
|
|||
|
||||
"github.com/ava-labs/salticidae-go"
|
||||
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
"github.com/ava-labs/gecko/networking"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/timer"
|
||||
"github.com/ava-labs/gecko/vms/avm"
|
||||
"github.com/ava-labs/gecko/vms/platformvm"
|
||||
|
@ -25,11 +23,8 @@ func (n *network) benchmarkAVM(chain *platformvm.CreateChainTx) {
|
|||
wallet, err := avmwallet.NewWallet(n.log, n.networkID, chain.ID(), config.AvaTxFee)
|
||||
n.log.AssertNoError(err)
|
||||
|
||||
cb58 := formatting.CB58{}
|
||||
keyStr := genesis.Keys[config.Key]
|
||||
n.log.AssertNoError(cb58.FromString(keyStr))
|
||||
factory := crypto.FactorySECP256K1R{}
|
||||
sk, err := factory.ToPrivateKey(cb58.Bytes)
|
||||
sk, err := factory.ToPrivateKey(config.Key)
|
||||
n.log.AssertNoError(err)
|
||||
wallet.ImportKey(sk.(*crypto.PrivateKeySECP256K1R))
|
||||
|
||||
|
|
|
@ -6,14 +6,9 @@ package avmwallet
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
"github.com/ava-labs/gecko/snow"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/logging"
|
||||
"github.com/ava-labs/gecko/utils/units"
|
||||
"github.com/ava-labs/gecko/vms/avm"
|
||||
"github.com/ava-labs/gecko/vms/components/ava"
|
||||
"github.com/ava-labs/gecko/vms/secp256k1fx"
|
||||
)
|
||||
|
@ -221,83 +216,3 @@ func TestWalletString(t *testing.T) {
|
|||
t.Fatalf("got:\n%s\n\nexpected:\n%s", str, expected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestWalletWithGenesis(t *testing.T) {
|
||||
ctx := snow.DefaultContextTest()
|
||||
ctx.NetworkID = 12345
|
||||
ctx.ChainID = ids.NewID([32]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
|
||||
|
||||
w, err := NewWallet(logging.NoLog{}, ctx.NetworkID, ctx.ChainID, 0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
b58 := formatting.CB58{}
|
||||
factory := crypto.FactorySECP256K1R{}
|
||||
for _, key := range genesis.Keys {
|
||||
if err := b58.FromString(key); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
sk, err := factory.ToPrivateKey(b58.Bytes)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
w.ImportKey(sk.(*crypto.PrivateKeySECP256K1R))
|
||||
}
|
||||
|
||||
avmChain := genesis.VMGenesis(ctx.NetworkID, avm.ID)
|
||||
genesisBytes := avmChain.GenesisData
|
||||
|
||||
genesis := avm.Genesis{}
|
||||
if err := w.codec.Unmarshal(genesisBytes, &genesis); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
genesisTx := genesis.Txs[0]
|
||||
tx := avm.Tx{
|
||||
UnsignedTx: &genesisTx.CreateAssetTx,
|
||||
}
|
||||
txBytes, err := w.codec.Marshal(&tx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tx.Initialize(txBytes)
|
||||
|
||||
for _, utxo := range tx.UTXOs() {
|
||||
w.AddUTXO(utxo)
|
||||
}
|
||||
|
||||
assetID := genesisTx.ID()
|
||||
|
||||
if balance := w.Balance(assetID); balance == 0 {
|
||||
t.Fatalf("expected a positive balance")
|
||||
}
|
||||
|
||||
for i := 1; i <= 1000; i++ {
|
||||
addr, err := w.CreateAddress()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
tx, err := w.CreateTx(assetID, uint64(i), addr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := tx.SyntacticVerify(ctx, w.codec, 1); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, utxoID := range tx.InputUTXOs() {
|
||||
w.RemoveUTXO(utxoID.InputID())
|
||||
}
|
||||
for _, utxo := range tx.UTXOs() {
|
||||
w.AddUTXO(utxo)
|
||||
}
|
||||
|
||||
if balance := w.Balance(assetID); balance != 45*units.MegaAva {
|
||||
t.Fatalf("balance of %d was expected but got %d", 45*units.MegaAva, balance)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,8 +23,10 @@ type Config struct {
|
|||
LoggingConfig logging.Config
|
||||
|
||||
// Key describes which key to use to issue transactions
|
||||
Key []byte
|
||||
|
||||
// NumTxs describes the number of transactions to issue
|
||||
// MaxOutstandingTxs describes how many txs to pipeline
|
||||
Key, NumTxs, MaxOutstandingTxs int
|
||||
Chain ChainType
|
||||
NumTxs, MaxOutstandingTxs int
|
||||
Chain ChainType
|
||||
}
|
||||
|
|
|
@ -41,11 +41,6 @@ func main() {
|
|||
crypto.EnableCrypto = config.EnableCrypto
|
||||
net.decided = make(chan ids.ID, config.MaxOutstandingTxs)
|
||||
|
||||
if config.Key >= len(genesis.Keys) || config.Key < 0 {
|
||||
log.Fatal("Unknown key specified")
|
||||
return
|
||||
}
|
||||
|
||||
// Init the network
|
||||
log.AssertNoError(net.Initialize())
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
"github.com/ava-labs/gecko/utils"
|
||||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/logging"
|
||||
"github.com/ava-labs/gecko/utils/wrappers"
|
||||
)
|
||||
|
@ -55,7 +56,7 @@ func init() {
|
|||
spchain := fs.Bool("sp-chain", false, "Execute simple payment chain transactions")
|
||||
spdag := fs.Bool("sp-dag", false, "Execute simple payment dag transactions")
|
||||
avm := fs.Bool("avm", false, "Execute avm transactions")
|
||||
fs.IntVar(&config.Key, "key", 0, "Index of the genesis key list to use")
|
||||
key := fs.String("key", "", "Funded key in the genesis key to use to issue transactions")
|
||||
fs.IntVar(&config.NumTxs, "num-txs", 25000, "Total number of transaction to issue")
|
||||
fs.IntVar(&config.MaxOutstandingTxs, "max-outstanding", 1000, "Maximum number of transactions to leave outstanding")
|
||||
|
||||
|
@ -86,6 +87,10 @@ func init() {
|
|||
Port: uint16(*port),
|
||||
}
|
||||
|
||||
cb58 := formatting.CB58{}
|
||||
errs.Add(cb58.FromString(*key))
|
||||
config.Key = cb58.Bytes
|
||||
|
||||
// Logging:
|
||||
if *logsDir != "" {
|
||||
loggingConfig.Directory = *logsDir
|
||||
|
|
|
@ -8,11 +8,9 @@ import (
|
|||
|
||||
"github.com/ava-labs/salticidae-go"
|
||||
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
"github.com/ava-labs/gecko/networking"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/timer"
|
||||
"github.com/ava-labs/gecko/vms/platformvm"
|
||||
"github.com/ava-labs/gecko/vms/spchainvm"
|
||||
|
@ -28,15 +26,11 @@ func (n *network) benchmarkSPChain(chain *platformvm.CreateChainTx) {
|
|||
accounts, err := codec.UnmarshalGenesis(genesisBytes)
|
||||
n.log.AssertNoError(err)
|
||||
|
||||
cb58 := formatting.CB58{}
|
||||
factory := crypto.FactorySECP256K1R{}
|
||||
for _, keyStr := range genesis.Keys {
|
||||
n.log.AssertNoError(cb58.FromString(keyStr))
|
||||
skGen, err := factory.ToPrivateKey(cb58.Bytes)
|
||||
n.log.AssertNoError(err)
|
||||
sk := skGen.(*crypto.PrivateKeySECP256K1R)
|
||||
wallet.ImportKey(sk)
|
||||
}
|
||||
skGen, err := factory.ToPrivateKey(config.Key)
|
||||
n.log.AssertNoError(err)
|
||||
sk := skGen.(*crypto.PrivateKeySECP256K1R)
|
||||
wallet.ImportKey(sk)
|
||||
|
||||
for _, account := range accounts {
|
||||
wallet.AddAccount(account)
|
||||
|
|
|
@ -8,11 +8,9 @@ import (
|
|||
|
||||
"github.com/ava-labs/salticidae-go"
|
||||
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
"github.com/ava-labs/gecko/networking"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/timer"
|
||||
"github.com/ava-labs/gecko/vms/platformvm"
|
||||
"github.com/ava-labs/gecko/vms/spdagvm"
|
||||
|
@ -28,11 +26,8 @@ func (n *network) benchmarkSPDAG(chain *platformvm.CreateChainTx) {
|
|||
tx, err := codec.UnmarshalTx(genesisBytes)
|
||||
n.log.AssertNoError(err)
|
||||
|
||||
cb58 := formatting.CB58{}
|
||||
keyStr := genesis.Keys[config.Key]
|
||||
n.log.AssertNoError(cb58.FromString(keyStr))
|
||||
factory := crypto.FactorySECP256K1R{}
|
||||
skGen, err := factory.ToPrivateKey(cb58.Bytes)
|
||||
skGen, err := factory.ToPrivateKey(config.Key)
|
||||
n.log.AssertNoError(err)
|
||||
sk := skGen.(*crypto.PrivateKeySECP256K1R)
|
||||
wallet.ImportKey(sk)
|
||||
|
|
Loading…
Reference in New Issue