This commit is contained in:
Lucas Molas 2020-08-05 19:47:27 -03:00
parent 8e044be7c2
commit ac25502308
4 changed files with 17 additions and 16 deletions

View File

@ -30,7 +30,7 @@ type BlockSync struct {
// FIXME: We should have a reduced interface here, initialized
// just with our protocol ID, we shouldn't be able to open *any*
// connection.
host host.Host
host host.Host
peerTracker *bsPeerTracker
}
@ -191,7 +191,7 @@ func (client *BlockSync) processResponse(
}
// Check `TipSet`s are connected (valid chain).
for i := 0; i < len(validRes.tipsets) - 1; i++ {
for i := 0; i < len(validRes.tipsets)-1; i++ {
if validRes.tipsets[i].IsChildOf(validRes.tipsets[i+1]) == false {
return nil, fmt.Errorf("tipsets are not connected at height (head - %d)/(head - %d)",
i, i+1)
@ -305,7 +305,7 @@ func (client *BlockSync) GetChainMessages(
ctx context.Context,
head *types.TipSet,
length uint64,
) ([]*CompactedMessages, error) {
) ([]*CompactedMessages, error) {
ctx, span := trace.StartSpan(ctx, "GetChainMessages")
defer span.End()

View File

@ -1,4 +1,5 @@
package blocksync
// FIXME: This needs to be reviewed.
import (

View File

@ -29,7 +29,7 @@ var MaxRequestLength = uint64(build.ForkLengthThreshold)
const SUCCESS_PEER_TAG_VALUE = 25
const WRITE_REQ_DEADLINE = 5 * time.Second
const READ_RES_DEADLINE = WRITE_REQ_DEADLINE
const READ_RES_MIN_SPEED = 50<<10
const READ_RES_MIN_SPEED = 50 << 10
const SHUFFLE_PEERS_PREFIX = 5
const WRITE_RES_DEADLINE = 60 * time.Second
@ -83,7 +83,7 @@ func parseOptions(optfield uint64) *parsedOptions {
// FIXME: Rename. Make private.
type Response struct {
Status status
Status status
// String that complements the error status when converting to an
// internal error (see `statusToError()`).
ErrorMessage string
@ -92,6 +92,7 @@ type Response struct {
}
type status uint64
const (
Ok status = 0
// We could not fetch all blocks requested (but at least we returned
@ -127,8 +128,8 @@ func (res *Response) statusToError() error {
// FIXME: Rename.
type BSTipSet struct {
Blocks []*types.BlockHeader
Messages *CompactedMessages
Blocks []*types.BlockHeader
Messages *CompactedMessages
}
// All messages of a single tipset compacted together instead
@ -144,17 +145,17 @@ type BSTipSet struct {
// FIXME: The logic to decompress this structure should belong
// to itself, not to the consumer.
type CompactedMessages struct {
Bls []*types.Message
Bls []*types.Message
BlsIncludes [][]uint64
Secpk []*types.SignedMessage
Secpk []*types.SignedMessage
SecpkIncludes [][]uint64
}
// Response that has been validated according to the protocol
// and can be safely accessed.
type validatedResponse struct {
tipsets []*types.TipSet
tipsets []*types.TipSet
// List of all messages per tipset (grouped by tipset,
// not by block, hence a single index like `tipsets`).
messages []*CompactedMessages
@ -162,7 +163,7 @@ type validatedResponse struct {
// Decompress messages and form full tipsets with them. The headers
// need to have been requested as well.
func (res *validatedResponse) toFullTipSets() ([]*store.FullTipSet) {
func (res *validatedResponse) toFullTipSets() []*store.FullTipSet {
if len(res.tipsets) == 0 || len(res.tipsets) != len(res.messages) {
// This decompression can only be done if both headers and
// messages are returned in the response. (The second check

View File

@ -18,7 +18,6 @@ import (
inet "github.com/libp2p/go-libp2p-core/network"
)
// BlockSyncService is the component that services BlockSync requests from
// peers.
//
@ -101,7 +100,7 @@ func (server *BlockSyncService) processRequest(
func validateRequest(
ctx context.Context,
req *Request,
) ( *validatedRequest, *Response) {
) (*validatedRequest, *Response) {
_, span := trace.StartSpan(ctx, "blocksync.ValidateRequest")
defer span.End()
@ -118,7 +117,7 @@ func validateRequest(
validReq.length = req.Length
if validReq.length > MaxRequestLength {
return nil, &Response{
Status: BadRequest,
Status: BadRequest,
ErrorMessage: fmt.Sprintf("request length over maximum allowed (%d)",
MaxRequestLength),
}
@ -151,7 +150,7 @@ func validateRequest(
func (server *BlockSyncService) serviceRequest(
ctx context.Context,
req *validatedRequest,
) (*Response, error) {
) (*Response, error) {
_, span := trace.StartSpan(ctx, "blocksync.ServiceRequest")
defer span.End()
@ -178,7 +177,7 @@ func (server *BlockSyncService) serviceRequest(
func collectChainSegment(
cs *store.ChainStore,
req *validatedRequest,
) ([]*BSTipSet, error) {
) ([]*BSTipSet, error) {
var bstips []*BSTipSet
cur := req.head