diff options
author | Zsolt Felfoldi <zsfelfoldi@gmail.com> | 2019-04-05 23:01:51 +0800 |
---|---|---|
committer | Zsolt Felfoldi <zsfelfoldi@gmail.com> | 2019-04-08 19:17:24 +0800 |
commit | 5515f364ae1673c1bf5569c089b5853c90ea1655 (patch) | |
tree | c220d8e953d8f075cc39d4ceb0d01d658052bd4f /les/peer.go | |
parent | 3996bc1ad91665ad30036713fba11840a36dfff0 (diff) | |
download | go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar.gz go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar.bz2 go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar.lz go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar.xz go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.tar.zst go-tangerine-5515f364ae1673c1bf5569c089b5853c90ea1655.zip |
les: removed les/1 protocol messages
Diffstat (limited to 'les/peer.go')
-rw-r--r-- | les/peer.go | 73 |
1 files changed, 10 insertions, 63 deletions
diff --git a/les/peer.go b/les/peer.go index 0c15add9c..bf3f0f762 100644 --- a/les/peer.go +++ b/les/peer.go @@ -34,10 +34,9 @@ import ( ) var ( - errClosed = errors.New("peer set is closed") - errAlreadyRegistered = errors.New("peer is already registered") - errNotRegistered = errors.New("peer is not registered") - errInvalidHelpTrieReq = errors.New("invalid help trie request") + errClosed = errors.New("peer set is closed") + errAlreadyRegistered = errors.New("peer is already registered") + errNotRegistered = errors.New("peer is not registered") ) const maxResponseErrors = 50 // number of invalid responses tolerated (makes the protocol less brittle but still avoids spam) @@ -244,18 +243,8 @@ func (p *peer) GetTxRelayCost(amount, size int) uint64 { p.lock.RLock() defer p.lock.RUnlock() - var msgcode uint64 - switch p.version { - case lpv1: - msgcode = SendTxMsg - case lpv2: - msgcode = SendTxV2Msg - default: - panic(nil) - } - - cost := p.fcCosts[msgcode].baseCost + p.fcCosts[msgcode].reqCost*uint64(amount) - sizeCost := p.fcCosts[msgcode].baseCost + p.fcCosts[msgcode].reqCost*uint64(size)/txSizeCostLimit + cost := p.fcCosts[SendTxV2Msg].baseCost + p.fcCosts[SendTxV2Msg].reqCost*uint64(amount) + sizeCost := p.fcCosts[SendTxV2Msg].baseCost + p.fcCosts[SendTxV2Msg].reqCost*uint64(size)/txSizeCostLimit if sizeCost > cost { cost = sizeCost } @@ -307,24 +296,12 @@ func (p *peer) ReplyReceiptsRLP(reqID uint64, receipts []rlp.RawValue) *reply { return &reply{p.rw, ReceiptsMsg, reqID, data} } -// ReplyProofs creates a reply with a batch of legacy LES/1 merkle proofs, corresponding to the ones requested. -func (p *peer) ReplyProofs(reqID uint64, proofs proofsData) *reply { - data, _ := rlp.EncodeToBytes(proofs) - return &reply{p.rw, ProofsV1Msg, reqID, data} -} - // ReplyProofsV2 creates a reply with a batch of merkle proofs, corresponding to the ones requested. func (p *peer) ReplyProofsV2(reqID uint64, proofs light.NodeList) *reply { data, _ := rlp.EncodeToBytes(proofs) return &reply{p.rw, ProofsV2Msg, reqID, data} } -// ReplyHeaderProofs creates a reply with a batch of legacy LES/1 header proofs, corresponding to the ones requested. -func (p *peer) ReplyHeaderProofs(reqID uint64, proofs []ChtResp) *reply { - data, _ := rlp.EncodeToBytes(proofs) - return &reply{p.rw, HeaderProofsMsg, reqID, data} -} - // ReplyHelperTrieProofs creates a reply with a batch of HelperTrie proofs, corresponding to the ones requested. func (p *peer) ReplyHelperTrieProofs(reqID uint64, resp HelperTrieResps) *reply { data, _ := rlp.EncodeToBytes(resp) @@ -374,36 +351,13 @@ func (p *peer) RequestReceipts(reqID, cost uint64, hashes []common.Hash) error { // RequestProofs fetches a batch of merkle proofs from a remote node. func (p *peer) RequestProofs(reqID, cost uint64, reqs []ProofReq) error { p.Log().Debug("Fetching batch of proofs", "count", len(reqs)) - switch p.version { - case lpv1: - return sendRequest(p.rw, GetProofsV1Msg, reqID, cost, reqs) - case lpv2: - return sendRequest(p.rw, GetProofsV2Msg, reqID, cost, reqs) - default: - panic(nil) - } + return sendRequest(p.rw, GetProofsV2Msg, reqID, cost, reqs) } // RequestHelperTrieProofs fetches a batch of HelperTrie merkle proofs from a remote node. -func (p *peer) RequestHelperTrieProofs(reqID, cost uint64, data interface{}) error { - switch p.version { - case lpv1: - reqs, ok := data.([]ChtReq) - if !ok { - return errInvalidHelpTrieReq - } - p.Log().Debug("Fetching batch of header proofs", "count", len(reqs)) - return sendRequest(p.rw, GetHeaderProofsMsg, reqID, cost, reqs) - case lpv2: - reqs, ok := data.([]HelperTrieReq) - if !ok { - return errInvalidHelpTrieReq - } - p.Log().Debug("Fetching batch of HelperTrie proofs", "count", len(reqs)) - return sendRequest(p.rw, GetHelperTrieProofsMsg, reqID, cost, reqs) - default: - panic(nil) - } +func (p *peer) RequestHelperTrieProofs(reqID, cost uint64, reqs []HelperTrieReq) error { + p.Log().Debug("Fetching batch of HelperTrie proofs", "count", len(reqs)) + return sendRequest(p.rw, GetHelperTrieProofsMsg, reqID, cost, reqs) } // RequestTxStatus fetches a batch of transaction status records from a remote node. @@ -415,14 +369,7 @@ func (p *peer) RequestTxStatus(reqID, cost uint64, txHashes []common.Hash) error // SendTxStatus creates a reply with a batch of transactions to be added to the remote transaction pool. func (p *peer) SendTxs(reqID, cost uint64, txs rlp.RawValue) error { p.Log().Debug("Sending batch of transactions", "size", len(txs)) - switch p.version { - case lpv1: - return p2p.Send(p.rw, SendTxMsg, txs) // old message format does not include reqID - case lpv2: - return sendRequest(p.rw, SendTxV2Msg, reqID, cost, txs) - default: - panic(nil) - } + return sendRequest(p.rw, SendTxV2Msg, reqID, cost, txs) } type keyValueEntry struct { |