Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: specify share version in MsgWirePayForBlob #1028

Merged
merged 9 commits into from
Nov 22, 2022
Merged
4 changes: 2 additions & 2 deletions app/estimate_square_size.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ func prune(txConf client.TxConfig, txs []*parsedTx, currentShareCount, squareSiz

// calculateCompactShareCount calculates the exact number of compact shares used.
func calculateCompactShareCount(txs []*parsedTx, evd core.EvidenceList, squareSize int) int {
txSplitter := shares.NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
evdSplitter := shares.NewCompactShareSplitter(appconsts.EvidenceNamespaceID, appconsts.ShareVersion)
txSplitter := shares.NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
evdSplitter := shares.NewCompactShareSplitter(appconsts.EvidenceNamespaceID, appconsts.ShareVersionZero)
var err error
msgSharesCursor := len(txs)
for _, tx := range txs {
Expand Down
1 change: 1 addition & 0 deletions app/estimate_square_size_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ func Test_overEstimateMalleatedTxSize(t *testing.T) {
encConf.TxConfig,
namespace.RandomMessageNamespace(),
tmrand.Bytes(tt.size),
appconsts.ShareVersionZero,
signer,
tt.opts...,
)
Expand Down
3 changes: 2 additions & 1 deletion app/test/block_size_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ func (s *IntegrationTestSuite) TestSubmitWirePayForBlob() {
for _, tc := range tests {
s.Run(tc.name, func() {
signer := types.NewKeyringSigner(s.kr, s.accounts[0], val.ClientCtx.ChainID)
res, err := blob.SubmitPayForBlob(context.TODO(), signer, val.ClientCtx.GRPCClient, tc.ns, tc.message, 10000000, tc.opts...)
res, err := blob.SubmitPayForBlob(context.TODO(), signer, val.ClientCtx.GRPCClient, tc.ns, tc.message, appconsts.ShareVersionZero, 10000000, tc.opts...)
require.NoError(err)
require.NotNil(res)
assert.Equal(abci.CodeTypeOK, res.Code)
Expand Down Expand Up @@ -268,6 +268,7 @@ func generateSignedWirePayForBlobTxs(clientCtx client.Context, txConfig client.T
msg, err := types.NewWirePayForBlob(
namespace.RandomMessageNamespace(),
tmrand.Bytes(thisMessageSize),
appconsts.ShareVersionZero,
)
if err != nil {
return nil, err
Expand Down
6 changes: 3 additions & 3 deletions app/test/prepare_proposal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ func generateRawTx(t *testing.T, txConfig client.TxConfig, ns, message []byte, s
}

// create a msg
msg := generateSignedWirePayForBlob(t, ns, message, signer, opts, ks...)
msg := generateSignedWirePayForBlob(t, ns, message, appconsts.ShareVersionZero, signer, opts)

builder := signer.NewTxBuilder(opts...)

Expand All @@ -165,8 +165,8 @@ func generateRawTx(t *testing.T, txConfig client.TxConfig, ns, message []byte, s
return rawTx
}

func generateSignedWirePayForBlob(t *testing.T, ns, message []byte, signer *types.KeyringSigner, options []types.TxBuilderOption, ks ...uint64) *types.MsgWirePayForBlob {
msg, err := types.NewWirePayForBlob(ns, message)
func generateSignedWirePayForBlob(t *testing.T, ns []byte, message []byte, shareVersion uint8, signer *types.KeyringSigner, options []types.TxBuilderOption) *types.MsgWirePayForBlob {
msg, err := types.NewWirePayForBlob(ns, message, shareVersion)
if err != nil {
t.Error(err)
}
Expand Down
8 changes: 5 additions & 3 deletions app/test/process_proposal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ func TestProcessMessageWithParityShareNamespaces(t *testing.T) {

signer := testutil.GenerateKeyringSigner(t, testAccName)

pfb, msg := genRandMsgPayForBlobForNamespace(t, signer, 8, appconsts.ParitySharesNamespaceID)
pfb, msg := genRandMsgPayForBlobForNamespace(t, signer, appconsts.ParitySharesNamespaceID)
input := abci.RequestProcessProposal{
BlockData: &core.Data{
Txs: [][]byte{
Expand All @@ -199,17 +199,19 @@ func TestProcessMessageWithParityShareNamespaces(t *testing.T) {
assert.Equal(t, abci.ResponseProcessProposal_REJECT, res.Result)
}

func genRandMsgPayForBlobForNamespace(t *testing.T, signer *types.KeyringSigner, squareSize uint64, ns namespace.ID) (*types.MsgPayForBlob, []byte) {
func genRandMsgPayForBlobForNamespace(t *testing.T, signer *types.KeyringSigner, ns namespace.ID) (*types.MsgPayForBlob, []byte) {
message := make([]byte, randomInt(20))
_, err := rand.Read(message)
require.NoError(t, err)

commit, err := types.CreateCommitment(ns, message)
shareVersion := appconsts.ShareVersionZero
commit, err := types.CreateCommitment(ns, message, shareVersion)
require.NoError(t, err)

pfb := types.MsgPayForBlob{
ShareCommitment: commit,
NamespaceId: ns,
ShareVersion: uint32(shareVersion),
}

return &pfb, message
Expand Down
13 changes: 8 additions & 5 deletions app/test_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"testing"

"github.com/celestiaorg/celestia-app/app/encoding"
"github.com/celestiaorg/celestia-app/pkg/appconsts"
"github.com/celestiaorg/celestia-app/testutil/namespace"
"github.com/celestiaorg/celestia-app/x/blob/types"
"github.com/cosmos/cosmos-sdk/client"
Expand Down Expand Up @@ -68,6 +69,7 @@ func generateManyRawWirePFB(t *testing.T, txConfig client.TxConfig, signer *type
txConfig,
namespace.RandomMessageNamespace(),
tmrand.Bytes(size),
appconsts.ShareVersionZero,
signer,
opts...,
)
Expand Down Expand Up @@ -120,10 +122,11 @@ func generateRawSendTx(t *testing.T, txConfig client.TxConfig, signer *types.Key
return rawTx
}

// generateRawWirePFB creates a tx with a single MsgWirePayForBlob message using the provided namespace and message
func generateRawWirePFBTx(t *testing.T, txConfig client.TxConfig, ns, message []byte, signer *types.KeyringSigner, opts ...types.TxBuilderOption) (rawTx []byte) {
// generateRawWirePFB creates a tx with a single MsgWirePayForBlob message using
// the provided namespace, message, and shareVersion
func generateRawWirePFBTx(t *testing.T, txConfig client.TxConfig, ns []byte, message []byte, shareVersion uint8, signer *types.KeyringSigner, opts ...types.TxBuilderOption) (rawTx []byte) {
// create a msg
msg := generateSignedWirePayForBlob(t, ns, message, signer, opts)
msg := generateSignedWirePayForBlob(t, ns, message, shareVersion, signer, opts)

builder := signer.NewTxBuilder(opts...)
tx, err := signer.BuildSignedTx(builder, msg)
Expand All @@ -136,8 +139,8 @@ func generateRawWirePFBTx(t *testing.T, txConfig client.TxConfig, ns, message []
return rawTx
}

func generateSignedWirePayForBlob(t *testing.T, ns, message []byte, signer *types.KeyringSigner, options []types.TxBuilderOption) *types.MsgWirePayForBlob {
msg, err := types.NewWirePayForBlob(ns, message)
func generateSignedWirePayForBlob(t *testing.T, ns []byte, message []byte, shareVersion uint8, signer *types.KeyringSigner, options []types.TxBuilderOption) *types.MsgWirePayForBlob {
msg, err := types.NewWirePayForBlob(ns, message, shareVersion)
if err != nil {
t.Error(err)
}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,5 @@ require (
replace (
github.com/cosmos/cosmos-sdk => github.com/celestiaorg/cosmos-sdk v1.4.0-sdk-v0.46.0
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
github.com/tendermint/tendermint v0.34.20 => github.com/celestiaorg/celestia-core v1.8.0-tm-v0.34.20
github.com/tendermint/tendermint v0.34.20 => github.com/celestiaorg/celestia-core v1.9.0-tm-v0.34.20
)
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,8 @@ github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46f
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/celestiaorg/celestia-core v1.8.0-tm-v0.34.20 h1:D1KxHZp8xGksmmYMUNlgMcEq2dnXyGQzU6XBWm7vlh0=
github.com/celestiaorg/celestia-core v1.8.0-tm-v0.34.20/go.mod h1:2ze96HI7+bV0RxY/EMEInsVJAgYO7sQ1DOt4MnFU/No=
github.com/celestiaorg/celestia-core v1.9.0-tm-v0.34.20 h1:v+Ay1f/Q4X7+Vo14No6J7f304pObM7aJygwiJ8OSsVc=
github.com/celestiaorg/celestia-core v1.9.0-tm-v0.34.20/go.mod h1:2ze96HI7+bV0RxY/EMEInsVJAgYO7sQ1DOt4MnFU/No=
rootulp marked this conversation as resolved.
Show resolved Hide resolved
github.com/celestiaorg/cosmos-sdk v1.4.0-sdk-v0.46.0 h1:65gnQ92mfz+9XNVTHeVwMp+SZuBqmToEnz8+WdDRmQ8=
github.com/celestiaorg/cosmos-sdk v1.4.0-sdk-v0.46.0/go.mod h1:ByQ2rOrZs7s2OnPfeaiTMC8IOlcrT195xIRPgevydCI=
github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n5MFP2MwK0gSRcOVlDlFdQJO1p+FqdxYzmvc=
Expand Down
6 changes: 3 additions & 3 deletions pkg/appconsts/appconsts.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ const (
// byte contains the share version and a start idicator.
ShareInfoBytes = 1

// ShareVersion is the current version of the share format
ShareVersion = uint8(0)
// ShareVersionZero is the first share version format.
ShareVersionZero = uint8(0)

// CompactShareReservedBytes is the number of bytes reserved for the location of
// the first unit (transaction, ISR, evidence) in a compact share.
Expand Down Expand Up @@ -128,7 +128,7 @@ var (
FirstCompactShareContentSize = ContinuationCompactShareContentSize - FirstCompactShareSequenceLengthBytes

// SupportedShareVersions is a list of supported share versions.
SupportedShareVersions = []uint8{ShareVersion}
SupportedShareVersions = []uint8{ShareVersionZero}
)

// numberOfBytesVarint calculates the number of bytes needed to write a varint of n
Expand Down
10 changes: 5 additions & 5 deletions pkg/shares/compact_shares_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
func TestCompactShareWriter(t *testing.T) {
// note that this test is mainly for debugging purposes, the main round trip
// tests occur in TestMerge and Test_processCompactShares
w := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
w := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
txs := generateRandomTransaction(33, 200)
for _, tx := range txs {
rawTx, _ := MarshalDelimitedTx(tx)
Expand Down Expand Up @@ -111,7 +111,7 @@ func Test_processCompactShares(t *testing.T) {
}

func TestCompactShareContainsInfoByte(t *testing.T) {
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
txs := generateRandomTransaction(1, appconsts.ContinuationCompactShareContentSize/4)

for _, tx := range txs {
Expand All @@ -124,14 +124,14 @@ func TestCompactShareContainsInfoByte(t *testing.T) {
infoByte := shares[0][appconsts.NamespaceSize : appconsts.NamespaceSize+appconsts.ShareInfoBytes][0]

isSequenceStart := true
want, err := NewInfoByte(appconsts.ShareVersion, isSequenceStart)
want, err := NewInfoByte(appconsts.ShareVersionZero, isSequenceStart)

require.NoError(t, err)
assert.Equal(t, byte(want), infoByte)
}

func TestContiguousCompactShareContainsInfoByte(t *testing.T) {
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
txs := generateRandomTransaction(1, appconsts.ContinuationCompactShareContentSize*4)

for _, tx := range txs {
Expand All @@ -144,7 +144,7 @@ func TestContiguousCompactShareContainsInfoByte(t *testing.T) {
infoByte := shares[1][appconsts.NamespaceSize : appconsts.NamespaceSize+appconsts.ShareInfoBytes][0]

isSequenceStart := false
want, err := NewInfoByte(appconsts.ShareVersion, isSequenceStart)
want, err := NewInfoByte(appconsts.ShareVersionZero, isSequenceStart)

require.NoError(t, err)
assert.Equal(t, byte(want), infoByte)
Expand Down
2 changes: 1 addition & 1 deletion pkg/shares/share_merging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ func Test_sparseSharesNeeded(t *testing.T) {
}

func generateRawShare(namespace namespace.ID, isSequenceStart bool, sequenceLength uint64) (rawShare []byte) {
infoByte, _ := NewInfoByte(appconsts.ShareVersion, isSequenceStart)
infoByte, _ := NewInfoByte(appconsts.ShareVersionZero, isSequenceStart)

sequenceLengthVarint := make([]byte, binary.MaxVarintLen64)
numBytesWritten := binary.PutUvarint(sequenceLengthVarint, sequenceLength)
Expand Down
6 changes: 3 additions & 3 deletions pkg/shares/share_splitting.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,15 +107,15 @@ func ExtractShareIndexes(txs coretypes.Txs) []uint32 {
}

func SplitTxs(txs coretypes.Txs) []Share {
writer := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
writer := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
for _, tx := range txs {
writer.WriteTx(tx)
}
return writer.Export()
}

func SplitEvidence(evd coretypes.EvidenceList) ([]Share, error) {
writer := NewCompactShareSplitter(appconsts.EvidenceNamespaceID, appconsts.ShareVersion)
writer := NewCompactShareSplitter(appconsts.EvidenceNamespaceID, appconsts.ShareVersionZero)
for _, ev := range evd {
err := writer.WriteEvidence(ev)
if err != nil {
Expand All @@ -140,7 +140,7 @@ func SplitMessages(cursor int, indexes []uint32, blobs []coretypes.Blob, useShar
return writer.Export(), nil
}

var tailPaddingInfo, _ = NewInfoByte(appconsts.ShareVersion, false)
var tailPaddingInfo, _ = NewInfoByte(appconsts.ShareVersionZero, false)

// tail is filler for all tail padded shares
// it is allocated once and used everywhere
Expand Down
4 changes: 2 additions & 2 deletions pkg/shares/sparse_shares_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,10 @@ func TestParsePaddedMsg(t *testing.T) {
func TestSparseShareContainsInfoByte(t *testing.T) {
message := generateRandomMessageOfShareCount(4)

sequenceStartInfoByte, err := NewInfoByte(appconsts.ShareVersion, true)
sequenceStartInfoByte, err := NewInfoByte(appconsts.ShareVersionZero, true)
require.NoError(t, err)

sequenceContinuationInfoByte, err := NewInfoByte(appconsts.ShareVersion, false)
sequenceContinuationInfoByte, err := NewInfoByte(appconsts.ShareVersionZero, false)
require.NoError(t, err)

type testCase struct {
Expand Down
6 changes: 3 additions & 3 deletions pkg/shares/split_compact_shares.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ type CompactShareSplitter struct {
}

// NewCompactShareSplitter returns a CompactShareSplitter using the provided
// namespace.
func NewCompactShareSplitter(ns namespace.ID, version uint8) *CompactShareSplitter {
// namespace and shareVersion.
func NewCompactShareSplitter(ns namespace.ID, shareVersion uint8) *CompactShareSplitter {
pendingShare := make([]byte, 0, appconsts.ShareSize)
infoByte, err := NewInfoByte(version, true)
infoByte, err := NewInfoByte(shareVersion, true)
if err != nil {
panic(err)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/shares/split_compact_shares_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func TestCount(t *testing.T) {
{transactions: []coretypes.Tx{bytes.Repeat([]byte{0}, appconsts.ContinuationCompactShareContentSize*2+1)}, wantShareCount: 3},
}
for _, tc := range testCases {
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersion)
css := NewCompactShareSplitter(appconsts.TxNamespaceID, appconsts.ShareVersionZero)
for _, transaction := range tc.transactions {
css.WriteTx(transaction)
}
Expand Down
22 changes: 11 additions & 11 deletions pkg/shares/split_sparse_shares.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ func NewSparseShareSplitter() *SparseShareSplitter {
}

// Write adds the delimited data to the underlying messages shares.
func (sss *SparseShareSplitter) Write(msg coretypes.Blob) {
rawMsg, err := MarshalDelimitedMessage(msg)
func (sss *SparseShareSplitter) Write(blob coretypes.Blob) {
rawMsg, err := MarshalDelimitedMessage(blob)
if err != nil {
panic(fmt.Sprintf("app accepted a Message that can not be encoded %#v", msg))
panic(fmt.Sprintf("app accepted a Message that can not be encoded %#v", blob))
}
newShares := make([]Share, 0)
newShares = AppendToShares(newShares, msg.NamespaceID, rawMsg)
newShares = AppendToShares(newShares, blob.NamespaceID, rawMsg, blob.ShareVersion)
sss.shares = append(sss.shares, newShares...)
}

Expand Down Expand Up @@ -80,9 +80,9 @@ func (sss *SparseShareSplitter) Count() int {

// AppendToShares appends raw data as shares.
// Used for messages.
func AppendToShares(shares []Share, nid namespace.ID, rawData []byte) []Share {
func AppendToShares(shares []Share, nid namespace.ID, rawData []byte, shareVersion uint8) []Share {
if len(rawData) <= appconsts.SparseShareContentSize {
infoByte, err := NewInfoByte(appconsts.ShareVersion, true)
infoByte, err := NewInfoByte(shareVersion, true)
if err != nil {
panic(err)
}
Expand All @@ -95,7 +95,7 @@ func AppendToShares(shares []Share, nid namespace.ID, rawData []byte) []Share {
paddedShare, _ := zeroPadIfNecessary(rawShare, appconsts.ShareSize)
shares = append(shares, paddedShare)
} else { // len(rawData) > MsgShareSize
shares = append(shares, splitMessage(rawData, nid)...)
shares = append(shares, splitMessage(rawData, nid, shareVersion)...)
}
return shares
}
Expand All @@ -112,8 +112,8 @@ func MarshalDelimitedMessage(msg coretypes.Blob) ([]byte, error) {

// splitMessage breaks the data in a message into the minimum number of
// namespaced shares
func splitMessage(rawData []byte, nid namespace.ID) (shares []Share) {
infoByte, err := NewInfoByte(appconsts.ShareVersion, true)
func splitMessage(rawData []byte, nid namespace.ID, shareVersion uint8) (shares []Share) {
infoByte, err := NewInfoByte(shareVersion, true)
if err != nil {
panic(err)
}
Expand All @@ -127,7 +127,7 @@ func splitMessage(rawData []byte, nid namespace.ID) (shares []Share) {
rawData = rawData[appconsts.SparseShareContentSize:]
for len(rawData) > 0 {
shareSizeOrLen := min(appconsts.SparseShareContentSize, len(rawData))
infoByte, err := NewInfoByte(appconsts.ShareVersion, false)
infoByte, err := NewInfoByte(appconsts.ShareVersionZero, false)
if err != nil {
panic(err)
}
Expand All @@ -153,7 +153,7 @@ func namespacedPaddedShares(ns namespace.ID, count int) []Share {
}

func namespacedPaddedShare(ns namespace.ID) Share {
infoByte, err := NewInfoByte(appconsts.ShareVersion, true)
infoByte, err := NewInfoByte(appconsts.ShareVersionZero, true)
if err != nil {
panic(err)
}
Expand Down
15 changes: 11 additions & 4 deletions proto/blob/tx.proto
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ message MsgWirePayForBlob {
// ShareCommitAndSignature` when a MsgWirePayForBlob included multiple
// blob share commitments (one per square size).
ShareCommitAndSignature share_commitment = 7;
// share_version is the version of the share format that the blob in this
// message should use when included in a block. The share_version specified
// must match the share_version used to generate the share_commitment in this
// message.
uint32 share_version = 8;
}

// MsgWirePayForBlobResponse describes the response returned after the
Expand All @@ -41,17 +46,19 @@ message ShareCommitAndSignature {
}

// MsgPayForBlob is what gets signed by users when creating
// ShareCommitSignatures.
// Multiple versions are signed and included, each version creates a commitment
// for a
// specific square size.
// ShareCommitSignatures. It is a subset of MsgWirePayForBlob that does not contain the blob.
message MsgPayForBlob {
string signer = 1;
bytes namespace_id = 2;
uint64 blob_size = 3;
// share_commitment is the share_commitment from
// ShareCommitAndSignature that will be included in a block
bytes share_commitment = 4;
// share_version is the version of the share format that the blob associated
// with this message should use when included in a block. The share_version
// specified must match the share_version used to generate the
// share_commitment in this message.
uint32 share_version = 8;
}

// MsgPayForBlobResponse describes the response returned after the submission
Expand Down
Loading