Skip to content

Commit 3f7187a

Browse files
authored
test: bump share size to 512 (#244)
Closes #237
1 parent 21850e7 commit 3f7187a

4 files changed

+60
-78
lines changed

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ import (
1818
)
1919

2020
func main() {
21-
// Size of each share, in bytes
22-
bufferSize := 64
21+
// shareSize is the size of each share (in bytes).
22+
shareSize := 512
2323
// Init new codec
2424
codec := rsmt2d.NewLeoRSCodec()
2525

26-
ones := bytes.Repeat([]byte{1}, bufferSize)
27-
twos := bytes.Repeat([]byte{2}, bufferSize)
28-
threes := bytes.Repeat([]byte{3}, bufferSize)
29-
fours := bytes.Repeat([]byte{4}, bufferSize)
26+
ones := bytes.Repeat([]byte{1}, shareSize)
27+
twos := bytes.Repeat([]byte{2}, shareSize)
28+
threes := bytes.Repeat([]byte{3}, shareSize)
29+
fours := bytes.Repeat([]byte{4}, shareSize)
3030

3131
// Compute parity shares
3232
eds, err := rsmt2d.ComputeExtendedDataSquare(

extendeddatacrossword_test.go

+18-27
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ import (
1111
"github.com/stretchr/testify/require"
1212
)
1313

14+
// shareSize is the size of each share (in bytes) used for testing.
15+
const shareSize = 512
16+
1417
// PseudoFraudProof is an example fraud proof.
1518
// TODO a real fraud proof would have a Merkle proof for each share.
1619
type PseudoFraudProof struct {
@@ -20,19 +23,16 @@ type PseudoFraudProof struct {
2023
}
2124

2225
func TestRepairExtendedDataSquare(t *testing.T) {
23-
bufferSize := 64
2426
tests := []struct {
25-
name string
26-
// Size of each share, in bytes
27-
shareSize int
28-
codec Codec
27+
name string
28+
codec Codec
2929
}{
30-
{"leopard", bufferSize, NewLeoRSCodec()},
30+
{"leopard", NewLeoRSCodec()},
3131
}
3232

3333
for _, test := range tests {
3434
t.Run(test.name, func(t *testing.T) {
35-
name, codec, shareSize := test.name, test.codec, test.shareSize
35+
name, codec := test.name, test.codec
3636
original := createTestEds(codec, shareSize)
3737

3838
rowRoots, err := original.RowRoots()
@@ -90,20 +90,17 @@ func TestRepairExtendedDataSquare(t *testing.T) {
9090
}
9191

9292
func TestValidFraudProof(t *testing.T) {
93-
bufferSize := 64
94-
corruptChunk := bytes.Repeat([]byte{66}, bufferSize)
93+
corruptChunk := bytes.Repeat([]byte{66}, shareSize)
9594
tests := []struct {
96-
name string
97-
// Size of each share, in bytes
98-
shareSize int
99-
codec Codec
95+
name string
96+
codec Codec
10097
}{
101-
{"leopard", bufferSize, NewLeoRSCodec()},
98+
{"leopard", NewLeoRSCodec()},
10299
}
103100

104101
for _, test := range tests {
105102
t.Run(test.name, func(t *testing.T) {
106-
name, codec, shareSize := test.name, test.codec, test.shareSize
103+
name, codec := test.name, test.codec
107104
original := createTestEds(codec, shareSize)
108105

109106
var byzData *ErrByzantineData
@@ -151,21 +148,17 @@ func TestValidFraudProof(t *testing.T) {
151148
}
152149

153150
func TestCannotRepairSquareWithBadRoots(t *testing.T) {
154-
bufferSize := 64
155-
corruptChunk := bytes.Repeat([]byte{66}, bufferSize)
151+
corruptChunk := bytes.Repeat([]byte{66}, shareSize)
156152
tests := []struct {
157-
name string
158-
// Size of each share, in bytes
159-
shareSize int
160-
codec Codec
153+
name string
154+
codec Codec
161155
}{
162-
{"leopard", bufferSize, NewLeoRSCodec()},
156+
{"leopard", NewLeoRSCodec()},
163157
}
164158

165159
for _, test := range tests {
166160
t.Run(test.name, func(t *testing.T) {
167-
codec, shareSize := test.codec, test.shareSize
168-
original := createTestEds(codec, shareSize)
161+
original := createTestEds(test.codec, shareSize)
169162

170163
rowRoots, err := original.RowRoots()
171164
require.NoError(t, err)
@@ -184,7 +177,6 @@ func TestCannotRepairSquareWithBadRoots(t *testing.T) {
184177
}
185178

186179
func TestCorruptedEdsReturnsErrByzantineData(t *testing.T) {
187-
shareSize := 64
188180
corruptChunk := bytes.Repeat([]byte{66}, shareSize)
189181

190182
tests := []struct {
@@ -261,7 +253,6 @@ func TestCorruptedEdsReturnsErrByzantineData(t *testing.T) {
261253
}
262254

263255
func BenchmarkRepair(b *testing.B) {
264-
chunkSize := uint(256)
265256
// For different ODS sizes
266257
for originalDataWidth := 4; originalDataWidth <= 512; originalDataWidth *= 2 {
267258
for codecName, codec := range codecs {
@@ -271,7 +262,7 @@ func BenchmarkRepair(b *testing.B) {
271262
}
272263

273264
// Generate a new range original data square then extend it
274-
square := genRandDS(originalDataWidth, int(chunkSize))
265+
square := genRandDS(originalDataWidth, shareSize)
275266
eds, err := ComputeExtendedDataSquare(square, codec, NewDefaultTree)
276267
if err != nil {
277268
b.Error(err)

extendeddatasquare_test.go

+17-23
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,17 @@ import (
1111
"github.com/stretchr/testify/assert"
1212
)
1313

14-
const ShardSize = 64
15-
1614
var (
17-
zeros = bytes.Repeat([]byte{0}, ShardSize)
18-
ones = bytes.Repeat([]byte{1}, ShardSize)
19-
twos = bytes.Repeat([]byte{2}, ShardSize)
20-
threes = bytes.Repeat([]byte{3}, ShardSize)
21-
fours = bytes.Repeat([]byte{4}, ShardSize)
22-
fives = bytes.Repeat([]byte{5}, ShardSize)
23-
eights = bytes.Repeat([]byte{8}, ShardSize)
24-
elevens = bytes.Repeat([]byte{11}, ShardSize)
25-
thirteens = bytes.Repeat([]byte{13}, ShardSize)
26-
fifteens = bytes.Repeat([]byte{15}, ShardSize)
15+
zeros = bytes.Repeat([]byte{0}, shareSize)
16+
ones = bytes.Repeat([]byte{1}, shareSize)
17+
twos = bytes.Repeat([]byte{2}, shareSize)
18+
threes = bytes.Repeat([]byte{3}, shareSize)
19+
fours = bytes.Repeat([]byte{4}, shareSize)
20+
fives = bytes.Repeat([]byte{5}, shareSize)
21+
eights = bytes.Repeat([]byte{8}, shareSize)
22+
elevens = bytes.Repeat([]byte{11}, shareSize)
23+
thirteens = bytes.Repeat([]byte{13}, shareSize)
24+
fifteens = bytes.Repeat([]byte{15}, shareSize)
2725
)
2826

2927
func TestComputeExtendedDataSquare(t *testing.T) {
@@ -99,38 +97,34 @@ func TestMarshalJSON(t *testing.T) {
9997
func TestNewExtendedDataSquare(t *testing.T) {
10098
t.Run("returns an error if edsWidth is not even", func(t *testing.T) {
10199
edsWidth := uint(1)
102-
chunkSize := uint(512)
103100

104-
_, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, chunkSize)
101+
_, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, shareSize)
105102
assert.Error(t, err)
106103
})
107104
t.Run("returns a 4x4 EDS", func(t *testing.T) {
108105
edsWidth := uint(4)
109-
chunkSize := uint(512)
110106

111-
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, chunkSize)
107+
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, shareSize)
112108
assert.NoError(t, err)
113109
assert.Equal(t, edsWidth, got.width)
114-
assert.Equal(t, chunkSize, got.chunkSize)
110+
assert.Equal(t, uint(shareSize), got.chunkSize)
115111
})
116112
t.Run("returns a 4x4 EDS that can be populated via SetCell", func(t *testing.T) {
117113
edsWidth := uint(4)
118-
chunkSize := uint(512)
119114

120-
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, chunkSize)
115+
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, shareSize)
121116
assert.NoError(t, err)
122117

123-
chunk := bytes.Repeat([]byte{1}, int(chunkSize))
118+
chunk := bytes.Repeat([]byte{1}, int(shareSize))
124119
err = got.SetCell(0, 0, chunk)
125120
assert.NoError(t, err)
126121
assert.Equal(t, chunk, got.squareRow[0][0])
127122
})
128123
t.Run("returns an error when SetCell is invoked on an EDS with a chunk that is not the correct size", func(t *testing.T) {
129124
edsWidth := uint(4)
130-
chunkSize := uint(512)
131-
incorrectChunkSize := uint(513)
125+
incorrectChunkSize := shareSize + 1
132126

133-
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, chunkSize)
127+
got, err := NewExtendedDataSquare(NewLeoRSCodec(), NewDefaultTree, edsWidth, shareSize)
134128
assert.NoError(t, err)
135129

136130
chunk := bytes.Repeat([]byte{1}, int(incorrectChunkSize))

rsmt2d_test.go

+19-22
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@ import (
1010
"github.com/stretchr/testify/require"
1111
)
1212

13+
// shareSize is the size of each share (in bytes) used for testing.
14+
const shareSize = 512
15+
1316
func TestEdsRepairRoundtripSimple(t *testing.T) {
14-
bufferSize := 64
1517
tests := []struct {
16-
name string
17-
// Size of each share, in bytes
18-
shareSize int
19-
codec rsmt2d.Codec
18+
name string
19+
codec rsmt2d.Codec
2020
}{
21-
{"leopard", bufferSize, rsmt2d.NewLeoRSCodec()},
21+
{"leopard", rsmt2d.NewLeoRSCodec()},
2222
}
2323

2424
for _, tt := range tests {
2525
t.Run(tt.name, func(t *testing.T) {
26-
ones := bytes.Repeat([]byte{1}, bufferSize)
27-
twos := bytes.Repeat([]byte{2}, bufferSize)
28-
threes := bytes.Repeat([]byte{3}, bufferSize)
29-
fours := bytes.Repeat([]byte{4}, bufferSize)
26+
ones := bytes.Repeat([]byte{1}, shareSize)
27+
twos := bytes.Repeat([]byte{2}, shareSize)
28+
threes := bytes.Repeat([]byte{3}, shareSize)
29+
fours := bytes.Repeat([]byte{4}, shareSize)
3030

3131
// Compute parity shares
3232
eds, err := rsmt2d.ComputeExtendedDataSquare(
@@ -76,22 +76,19 @@ func TestEdsRepairRoundtripSimple(t *testing.T) {
7676
}
7777

7878
func TestEdsRepairTwice(t *testing.T) {
79-
bufferSize := 64
8079
tests := []struct {
81-
name string
82-
// Size of each share, in bytes
83-
shareSize int
84-
codec rsmt2d.Codec
80+
name string
81+
codec rsmt2d.Codec
8582
}{
86-
{"leopard", bufferSize, rsmt2d.NewLeoRSCodec()},
83+
{"leopard", rsmt2d.NewLeoRSCodec()},
8784
}
8885

8986
for _, tt := range tests {
9087
t.Run(tt.name, func(t *testing.T) {
91-
ones := bytes.Repeat([]byte{1}, bufferSize)
92-
twos := bytes.Repeat([]byte{2}, bufferSize)
93-
threes := bytes.Repeat([]byte{3}, bufferSize)
94-
fours := bytes.Repeat([]byte{4}, bufferSize)
88+
ones := bytes.Repeat([]byte{1}, shareSize)
89+
twos := bytes.Repeat([]byte{2}, shareSize)
90+
threes := bytes.Repeat([]byte{3}, shareSize)
91+
fours := bytes.Repeat([]byte{4}, shareSize)
9592

9693
// Compute parity shares
9794
eds, err := rsmt2d.ComputeExtendedDataSquare(
@@ -115,7 +112,7 @@ func TestEdsRepairTwice(t *testing.T) {
115112
flattened := eds.Flattened()
116113

117114
// Delete some shares, just enough so that repairing is possible, then remove one more.
118-
missing := make([]byte, bufferSize)
115+
missing := make([]byte, shareSize)
119116
copy(missing, flattened[1])
120117
flattened[0], flattened[1], flattened[2], flattened[3] = nil, nil, nil, nil
121118
flattened[4], flattened[5], flattened[6], flattened[7] = nil, nil, nil, nil
@@ -138,7 +135,7 @@ func TestEdsRepairTwice(t *testing.T) {
138135
t.Errorf("RepairExtendedDataSquare did not fail with `%v`, got `%v`", rsmt2d.ErrUnrepairableDataSquare, err)
139136
}
140137
// Re-insert missing share and try again.
141-
flattened[1] = make([]byte, bufferSize)
138+
flattened[1] = make([]byte, shareSize)
142139
copy(flattened[1], missing)
143140

144141
// Re-import the data square.

0 commit comments

Comments
 (0)