1717package txnsync
1818
1919import (
20+ "github.com/algorand/go-algorand/crypto"
2021 "github.com/algorand/go-algorand/data/basics"
2122)
2223
2324const txnBlockMessageVersion = 1
2425const maxBloomFilterSize = 100000
2526const maxAcceptedMsgSeq = 64
2627const maxEncodedTransactionGroupBytes = 10000000
28+ const maxProposalSize = 350000
2729
2830type transactionBlockMessage struct {
2931 _struct struct {} `codec:",omitempty,omitemptyarray"` //nolint:structcheck,unused
@@ -34,6 +36,7 @@ type transactionBlockMessage struct {
3436 UpdatedRequestParams requestParams `codec:"p"`
3537 TransactionGroups packedTransactionGroups `codec:"g"`
3638 MsgSync timingParams `codec:"t"`
39+ RelayedProposal relayedProposal `codec:"rp"`
3740}
3841
3942type encodedBloomFilter struct {
@@ -73,3 +76,16 @@ type timingParams struct {
7376 AcceptedMsgSeq []uint64 `codec:"a,allocbound=maxAcceptedMsgSeq"`
7477 NextMsgMinDelay uint64 `codec:"m"`
7578}
79+
80+ const (
81+ noProposal byte = iota
82+ transactionsForProposal
83+ )
84+
85+ type relayedProposal struct {
86+ _struct struct {} `codec:",omitempty,omitemptyarray"`
87+
88+ RawBytes []byte `codec:"b,allocbound=maxProposalSize"`
89+ ExcludeProposal crypto.Digest `codec:"e"`
90+ Content byte `codec:"c"`
91+ }
0 commit comments