beetswap 0.5.0

Implementation of bitswap protocol for libp2p
Documentation
syntax = "proto3";

message Message {
    message Wantlist {
        enum WantType {
            Block = 0;
            Have = 1;
        }

        message Entry {
            bytes block = 1; // CID of the block
            int32 priority = 2; // the priority (normalized). default to 1
            bool cancel = 3; // whether this revokes an entry
            WantType wantType = 4; // Note: defaults to enum 0, ie Block
            bool sendDontHave = 5; // Note: defaults to false
        }

        repeated Entry entries = 1; // a list of wantlist entries
        bool full = 2; // whether this is the full wantlist. default to false
    }
    message Block {
        bytes prefix = 1; // CID prefix (all of the CID components except for the digest of the multihash)
        bytes data = 2;
    }

    enum BlockPresenceType {
        Have = 0;
        DontHave = 1;
    }
    message BlockPresence {
        bytes cid = 1;
        BlockPresenceType type = 2;
    }

    Wantlist wantlist = 1;
    repeated Block payload = 3;
    repeated BlockPresence blockPresences = 4;
    int32 pendingBytes = 5;
}