aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei-Ning Huang <w@dexon.org>2018-10-20 17:26:32 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-12 17:27:16 +0800
commit5f1b306988f331695de76d4a1e6ff1ad26d83649 (patch)
tree0a4e061023a52ff791b632b2f6a19955b823f545
parent85d795d9314ef80d667c17318342515ea4798dec (diff)
downloadgo-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar.gz
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar.bz2
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar.lz
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar.xz
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.tar.zst
go-tangerine-5f1b306988f331695de76d4a1e6ff1ad26d83649.zip
core: included Dexcon metadata in block
-rw-r--r--core/types/block.go5
-rw-r--r--dex/app.go16
-rw-r--r--internal/ethapi/api.go2
3 files changed, 16 insertions, 7 deletions
diff --git a/core/types/block.go b/core/types/block.go
index 02d52f30f..b51cea811 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -88,8 +88,9 @@ type Header struct {
Randomness []byte `json:"randomness" gencodec:"required"`
Position coreTypes.Position `json:"position" gencodec:"required"`
WitnessHeight uint64 `json:"witnessHeight" gencodec:"required"`
- WitnessRoot common.Hash `json:"WitnessRoot" gencodec:"required"`
- WitnessReceiptHash common.Hash `json:"WitnessReceiptHash" gencodec:"required"`
+ WitnessRoot common.Hash `json:"witnessRoot" gencodec:"required"`
+ WitnessReceiptHash common.Hash `json:"witnessReceiptHash" gencodec:"required"`
+ DexconMeta []byte `json:"dexconMeta" gencodec:"required"`
ChainID uint32 `json:"chainID" gencodec:"required"`
ChainBlockHeight uint64 `json:"chainBlockHeight" gencodec:"required"`
}
diff --git a/dex/app.go b/dex/app.go
index 40366c25f..ecd29546e 100644
--- a/dex/app.go
+++ b/dex/app.go
@@ -347,22 +347,27 @@ func (d *DexconApp) BlockDelivered(blockHash coreCommon.Hash, result coreTypes.F
block := d.blockchain.GetConfirmedBlockByHash(blockHash)
if block == nil {
- log.Error("Can not get confirmed block")
- return
+ panic("Can not get confirmed block")
}
var transactions types.Transactions
err := rlp.Decode(bytes.NewReader(block.Payload), &transactions)
if err != nil {
log.Error("Payload rlp decode failed", "error", err)
- return
+ panic(err)
}
var witnessData witnessData
err = rlp.Decode(bytes.NewReader(block.Witness.Data), &witnessData)
if err != nil {
log.Error("Witness rlp decode failed", "error", err)
- return
+ panic(err)
+ }
+
+ block.Payload = nil
+ dexconMeta, err := rlp.EncodeToBytes(block)
+ if err != nil {
+ panic(err)
}
log.Debug("Block proposer id", "hash", block.ProposerID)
@@ -378,13 +383,14 @@ func (d *DexconApp) BlockDelivered(blockHash coreCommon.Hash, result coreTypes.F
ChainBlockHeight: block.Position.Height,
// TODO(bojie): fix it
GasLimit: 8000000,
+ DexconMeta: dexconMeta,
Difficulty: big.NewInt(1),
}, transactions, nil, nil)
_, err = d.blockchain.InsertPendingBlocks([]*types.Block{newBlock})
if err != nil {
log.Error("Insert chain", "error", err)
- return
+ panic(err)
}
log.Debug("Insert pending block success", "height", result.Height)
diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index 097e83e3c..edfc2e8b5 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -894,6 +894,8 @@ func RPCMarshalBlock(b *types.Block, inclTx bool, fullTx bool) (map[string]inter
"timestamp": hexutil.Uint64(head.Time),
"transactionsRoot": head.TxHash,
"receiptsRoot": head.ReceiptHash,
+ "randomness": hexutil.Bytes(head.Randomness),
+ "dexconMeta": hexutil.Bytes(head.DexconMeta),
}
if inclTx {