forked from cerc-io/plugeth
Fixed genesis and block data
This commit is contained in:
parent
b4e156e1d7
commit
7d3e99a2ab
@ -40,6 +40,14 @@ type Block struct {
|
|||||||
Difficulty *big.Int
|
Difficulty *big.Int
|
||||||
// Creation time
|
// Creation time
|
||||||
Time int64
|
Time int64
|
||||||
|
// The block number
|
||||||
|
Number *big.Int
|
||||||
|
// Minimum Gas Price
|
||||||
|
MinGasPrice *big.Int
|
||||||
|
// Gas limit
|
||||||
|
GasLimit *big.Int
|
||||||
|
// Gas used
|
||||||
|
GasUsed *big.Int
|
||||||
// Extra data
|
// Extra data
|
||||||
Extra string
|
Extra string
|
||||||
// Block Nonce for verification
|
// Block Nonce for verification
|
||||||
@ -233,9 +241,13 @@ func (block *Block) RlpValueDecode(decoder *ethutil.Value) {
|
|||||||
block.state = NewState(ethutil.NewTrie(ethutil.Config.Db, header.Get(3).Val))
|
block.state = NewState(ethutil.NewTrie(ethutil.Config.Db, header.Get(3).Val))
|
||||||
block.TxSha = header.Get(4).Bytes()
|
block.TxSha = header.Get(4).Bytes()
|
||||||
block.Difficulty = header.Get(5).BigInt()
|
block.Difficulty = header.Get(5).BigInt()
|
||||||
block.Time = int64(header.Get(6).BigInt().Uint64())
|
block.Number = header.Get(6).BigInt()
|
||||||
block.Extra = header.Get(7).Str()
|
block.MinGasPrice = header.Get(7).BigInt()
|
||||||
block.Nonce = header.Get(8).Bytes()
|
block.GasLimit = header.Get(8).BigInt()
|
||||||
|
block.GasUsed = header.Get(9).BigInt()
|
||||||
|
block.Time = int64(header.Get(10).BigInt().Uint64())
|
||||||
|
block.Extra = header.Get(11).Str()
|
||||||
|
block.Nonce = header.Get(12).Bytes()
|
||||||
block.contractStates = make(map[string]*ethutil.Trie)
|
block.contractStates = make(map[string]*ethutil.Trie)
|
||||||
|
|
||||||
// Tx list might be empty if this is an uncle. Uncles only have their
|
// Tx list might be empty if this is an uncle. Uncles only have their
|
||||||
@ -270,16 +282,51 @@ func NewUncleBlockFromValue(header *ethutil.Value) *Block {
|
|||||||
block.state = NewState(ethutil.NewTrie(ethutil.Config.Db, header.Get(3).Val))
|
block.state = NewState(ethutil.NewTrie(ethutil.Config.Db, header.Get(3).Val))
|
||||||
block.TxSha = header.Get(4).Bytes()
|
block.TxSha = header.Get(4).Bytes()
|
||||||
block.Difficulty = header.Get(5).BigInt()
|
block.Difficulty = header.Get(5).BigInt()
|
||||||
block.Time = int64(header.Get(6).BigInt().Uint64())
|
block.Number = header.Get(6).BigInt()
|
||||||
block.Extra = header.Get(7).Str()
|
block.MinGasPrice = header.Get(7).BigInt()
|
||||||
block.Nonce = header.Get(8).Bytes()
|
block.GasLimit = header.Get(8).BigInt()
|
||||||
|
block.GasUsed = header.Get(9).BigInt()
|
||||||
|
block.Time = int64(header.Get(10).BigInt().Uint64())
|
||||||
|
block.Extra = header.Get(11).Str()
|
||||||
|
block.Nonce = header.Get(12).Bytes()
|
||||||
|
|
||||||
return block
|
return block
|
||||||
}
|
}
|
||||||
|
|
||||||
func (block *Block) String() string {
|
func (block *Block) String() string {
|
||||||
return fmt.Sprintf("Block(%x):\nPrevHash:%x\nUncleSha:%x\nCoinbase:%x\nRoot:%x\nTxSha:%x\nDiff:%v\nTime:%d\nNonce:%x\nTxs:%d\n", block.Hash(), block.PrevHash, block.UncleSha, block.Coinbase, block.state.trie.Root, block.TxSha, block.Difficulty, block.Time, block.Nonce, len(block.transactions))
|
//return fmt.Sprintf("Block(%x):\nPrevHash:%x\nUncleSha:%x\nCoinbase:%x\nRoot:%x\nTxSha:%x\nDiff:%v\nNonce:%x\nTxs:%d\n", block.Hash(), block.PrevHash, block.UncleSha, block.Coinbase, block.state.trie.Root, block.TxSha, block.Difficulty, block.Time, block.Nonce, len(block.transactions))
|
||||||
|
return fmt.Sprintf(`
|
||||||
|
Block(%x):
|
||||||
|
PrevHash: %x
|
||||||
|
UncleSha: %x
|
||||||
|
Coinbase: %x
|
||||||
|
Root: %x
|
||||||
|
TxSha: %x
|
||||||
|
Difficulty: %v
|
||||||
|
Number: %v
|
||||||
|
MinGas: %v
|
||||||
|
MaxLimit: %v
|
||||||
|
GasUsed: %v
|
||||||
|
Time: %v
|
||||||
|
Extra: %v
|
||||||
|
Nonce: %x
|
||||||
|
`,
|
||||||
|
block.Hash(),
|
||||||
|
block.PrevHash,
|
||||||
|
block.UncleSha,
|
||||||
|
block.Coinbase,
|
||||||
|
block.state.trie.Root,
|
||||||
|
block.TxSha,
|
||||||
|
block.Difficulty,
|
||||||
|
block.Number,
|
||||||
|
block.MinGasPrice,
|
||||||
|
block.GasLimit,
|
||||||
|
block.GasUsed,
|
||||||
|
block.Time,
|
||||||
|
block.Extra,
|
||||||
|
block.Nonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (block *Block) GetRoot() interface{} {
|
func (block *Block) GetRoot() interface{} {
|
||||||
return block.state.trie.Root
|
return block.state.trie.Root
|
||||||
}
|
}
|
||||||
@ -299,6 +346,14 @@ func (block *Block) header() []interface{} {
|
|||||||
block.TxSha,
|
block.TxSha,
|
||||||
// Current block Difficulty
|
// Current block Difficulty
|
||||||
block.Difficulty,
|
block.Difficulty,
|
||||||
|
// The block number
|
||||||
|
block.Number,
|
||||||
|
// Block minimum gas price
|
||||||
|
block.MinGasPrice,
|
||||||
|
// Block upper gas bound
|
||||||
|
block.GasLimit,
|
||||||
|
// Block gas used
|
||||||
|
block.GasUsed,
|
||||||
// Time the block was found?
|
// Time the block was found?
|
||||||
block.Time,
|
block.Time,
|
||||||
// Extra data
|
// Extra data
|
||||||
|
@ -15,7 +15,6 @@ var EmptyShaList = ethutil.Sha3Bin(ethutil.Encode([]interface{}{}))
|
|||||||
|
|
||||||
var GenesisHeader = []interface{}{
|
var GenesisHeader = []interface{}{
|
||||||
// Previous hash (none)
|
// Previous hash (none)
|
||||||
//"",
|
|
||||||
ZeroHash256,
|
ZeroHash256,
|
||||||
// Sha of uncles
|
// Sha of uncles
|
||||||
ethutil.Sha3Bin(ethutil.Encode([]interface{}{})),
|
ethutil.Sha3Bin(ethutil.Encode([]interface{}{})),
|
||||||
@ -23,15 +22,23 @@ var GenesisHeader = []interface{}{
|
|||||||
ZeroHash160,
|
ZeroHash160,
|
||||||
// Root state
|
// Root state
|
||||||
"",
|
"",
|
||||||
// Sha of transactions
|
|
||||||
//EmptyShaList,
|
//EmptyShaList,
|
||||||
ethutil.Sha3Bin(ethutil.Encode([]interface{}{})),
|
ZeroHash256,
|
||||||
|
//ethutil.Sha3Bin(ethutil.Encode(ZeroHash256)),
|
||||||
// Difficulty
|
// Difficulty
|
||||||
ethutil.BigPow(2, 22),
|
ethutil.BigPow(2, 22),
|
||||||
|
// Number
|
||||||
|
ethutil.Big0,
|
||||||
|
// Block minimum gas price
|
||||||
|
ethutil.Big0,
|
||||||
|
// Block upper gas bound
|
||||||
|
big.NewInt(1000000),
|
||||||
|
// Block gas used
|
||||||
|
ethutil.Big0,
|
||||||
// Time
|
// Time
|
||||||
int64(0),
|
ethutil.Big0,
|
||||||
// Extra
|
// Extra
|
||||||
"",
|
nil,
|
||||||
// Nonce
|
// Nonce
|
||||||
ethutil.Sha3Bin(big.NewInt(42).Bytes()),
|
ethutil.Sha3Bin(big.NewInt(42).Bytes()),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user