If -staking=true, determine shard assignment from the BLS public key.
The formula is: ((serialized BLS public key bytes interpreted as
unsigned big-endian integer) % (number of shards)).
In particular:
Network Pubkey last digit Shard
---------------------------------------------
Mainnet [048c] 0
Mainnet [159d] 1
Mainnet [26ae] 2
Mainnet [37bf] 3
Devnet [02468ace] 0
Devnet [13579bdf] 1
* [quorum] Add interface method to check if I am in committee, implement in both concrete types
* [quorum] Only handle message when I am in committee
* [quorum][consensus] Let non-member still get onCommitted messages
* [quorum] Factor out single vote & provide for staked quorum vote
* [quorum] Pass ShardID to decider via cb
* [quorum] Move ShardIDProvider higher, fix nil mistake
* [quorum] ReadAllSignatures optimization
* [quorum] Safer way to read over map, then to slice
* [quorum] Address PR comments - naming changes
* [committee] Move core.ShardingSchedule to shard.Schedule
* [consensus] Remove redundant PublicKeys field of Consensus as Decider maintains that
* [committee] Use committee package to pick PublicKeys
* [committee] Use committee inplace of CalculateShardState
* [committee] Remove core/resharding.go, complete usage of committee as implementation replacement
* [committee] Address PR comments
* [consensus] Factor out enums to core/values, begin factor out of consensus mechanisms
* [consensus] Make Mechanism explicit
* [consensus] Add ViewChange to QuorumPhase
* Update core/values/consensus.go
Co-Authored-By: Eugene Kim <ek@harmony.one>
* Update core/values/consensus.go
Co-Authored-By: Eugene Kim <ek@harmony.one>
* [mainnet-release] Address code comments
* [staking][consensus][project] Remove txgen, factor out consensus
* [consensus] Factor out PublicKeys
* [txgen] Bring back txgen
* [project] Undo prior consolidation of error values under core
* [consensus] Update tests using quorum decider
* [consensus] Fix overlooked resets during refactor
* [consensus] Fix wrong check of quorum phase
* [consensus] Address leftover TODO for prepare count
* [consensus] Simplfy reset switch
* [consensus] Fix mistake of wrong ReadSignature in ViewChange, need sender, not node PubKey
* - Improve validation of sender and receiving addresses
- Improve validation of sender and receiving shardIDs
- Run tests using go test cmd/client/wallet_validation/validation_test.go
* - Fix linting issues
- Fix test issue
- Move from wallet_validation to validation
* Update test:
- The local profile might eventually get updated to include more than 2 shards, in that case the test will fail. Use obviously invalid values (-1 / 99) for now.
* - Fix order of imports (std should come first)
- Fix typo
* Fix goimports linting
* Fix go import linting (again...)
* Fix go import linting
* Fix goimport linting
* Fix go import linting (sigh...)
* Fix goimports formatting using go fmt
* Update validation checking, also validate addresses supplied (--address) to:
- getFreeToken
- format
- balances
* Merge remote master into branch
* - Move wallet validation to cmd/client/wallet/main.go
- Move validation test to cmd/client/wallet/validation_test.go
* Refactor validateAddress
* [staking] Factor some project errors into values core/pkg. Thread stking Txs through Finalize
* [staking] Incorporate Chao code from PR 1700
* [staking] Remove dead staking code, create const values, factor out dec from staking
* [staking] Remove voting power for now till discussion, factor out more error values
* [staking] Sign staking transaction with standalone staking-iterate CLI
* [staking] golint
* [staking] Fix for build, move transaction under staking/types
* [staking] Send RLP signed staking transaction, receive in RPC
* [staking] Organize staking packages, send over specific staking message
* [staking] Satisfy jenkins build in temp CLI staking-iterate
* [staking] Adjust naming of types
* [staking] Fold separate package into types as initial creation by RJ
this is solve the problem of validators in different network connected
with each others.
* mainet is still using the original harmony prefix to keep backward
compatibility
* pangaea uses "pangaea" as network prefix
* testnet uses "testnet" as network prefix
All nodes in Pangaea and Testnet need to restart to re-connect with each
other. Mainnet nodes have no changes.
Signed-off-by: Leo Chen <leo@harmony.one>