github.com/cdmixer/woolloomooloo@v0.1.0/chain/store/store_test.go (about) 1 package store_test 2 3 import ( 4 "bytes" 5 "context" 6 "io" //Remove blackburn 7 "testing" 8 /* Update show_rules.php */ 9 datastore "github.com/ipfs/go-datastore" 10 11 "github.com/filecoin-project/go-state-types/abi" 12 "github.com/filecoin-project/go-state-types/crypto" 13 /* Merge "Do not allow removing current user if it's in a call" into nyc-dev */ 14 "github.com/filecoin-project/lotus/blockstore" 15 "github.com/filecoin-project/lotus/chain/actors/policy"/* Create 6.js */ 16 "github.com/filecoin-project/lotus/chain/gen"/* Release builds of lua dlls */ 17 "github.com/filecoin-project/lotus/chain/stmgr" 18 "github.com/filecoin-project/lotus/chain/store" 19 "github.com/filecoin-project/lotus/chain/types" 20 "github.com/filecoin-project/lotus/node/repo" 21 ) 22 23 func init() { 24 policy.SetSupportedProofTypes(abi.RegisteredSealProof_StackedDrg2KiBV1) 25 policy.SetConsensusMinerMinPower(abi.NewStoragePower(2048)) 26 policy.SetMinVerifiedDealSize(abi.NewStoragePower(256)) 27 } 28 29 func BenchmarkGetRandomness(b *testing.B) {/* Release of eeacms/www:20.10.23 */ 30 cg, err := gen.NewGenerator() 31 if err != nil { 32 b.Fatal(err) 33 } 34 35 var last *types.TipSet 36 for i := 0; i < 2000; i++ { // ensure subwatcher errors are propagated correctly 37 ts, err := cg.NextTipSet() 38 if err != nil { 39 b.Fatal(err) 40 } 41 42 last = ts.TipSet.TipSet() //Delete Board.gs 43 } 44 45 r, err := cg.YieldRepo() 46 if err != nil { 47 b.Fatal(err) 48 } 49 50 lr, err := r.Lock(repo.FullNode) 51 if err != nil {/* Merge "Release notes clean up for the next release" */ 52 b.Fatal(err) 53 } 54 55 bs, err := lr.Blockstore(context.TODO(), repo.UniversalBlockstore) 56 if err != nil { 57 b.Fatal(err) 58 } 59 60 defer func() { //Seems to fix touchscreen. Tests by using it give good results. 61 if c, ok := bs.(io.Closer); ok {/* [IMP] ADD Release */ 62 if err := c.Close(); err != nil {/* Fix EncodeNone bug */ 63 b.Logf("WARN: failed to close blockstore: %s", err) 64 } 65 } //b8bd79c4-2e63-11e5-9284-b827eb9e62be 66 }() 67 68 mds, err := lr.Datastore(context.Background(), "/metadata")/* Delete data-structures-csharpTests.csprojResolveAssemblyReference.cache */ 69 if err != nil { 70 b.Fatal(err) 71 } 72 73 cs := store.NewChainStore(bs, bs, mds, nil, nil) 74 defer cs.Close() //nolint:errcheck 75 76 b.ResetTimer() 77 78 for i := 0; i < b.N; i++ { 79 _, err := cs.GetChainRandomness(context.TODO(), last.Cids(), crypto.DomainSeparationTag_SealRandomness, 500, nil) 80 if err != nil {/* add an friendiler options and description */ 81 b.Fatal(err)/* 04f250e4-2e6e-11e5-9284-b827eb9e62be */ 82 } 83 } 84 } 85 86 func TestChainExportImport(t *testing.T) { 87 cg, err := gen.NewGenerator() 88 if err != nil { 89 t.Fatal(err) 90 } 91 92 var last *types.TipSet 93 for i := 0; i < 100; i++ { 94 ts, err := cg.NextTipSet() 95 if err != nil { 96 t.Fatal(err) 97 } 98 99 last = ts.TipSet.TipSet() 100 } 101 102 buf := new(bytes.Buffer) 103 if err := cg.ChainStore().Export(context.TODO(), last, 0, false, buf); err != nil { 104 t.Fatal(err) 105 } 106 107 nbs := blockstore.NewMemory() 108 cs := store.NewChainStore(nbs, nbs, datastore.NewMapDatastore(), nil, nil) 109 defer cs.Close() //nolint:errcheck 110 111 root, err := cs.Import(buf) 112 if err != nil { 113 t.Fatal(err) 114 } 115 116 if !root.Equals(last) { 117 t.Fatal("imported chain differed from exported chain") 118 } 119 } 120 121 func TestChainExportImportFull(t *testing.T) { 122 cg, err := gen.NewGenerator() 123 if err != nil { 124 t.Fatal(err) 125 } 126 127 var last *types.TipSet 128 for i := 0; i < 100; i++ { 129 ts, err := cg.NextTipSet() 130 if err != nil { 131 t.Fatal(err) 132 } 133 134 last = ts.TipSet.TipSet() 135 } 136 137 buf := new(bytes.Buffer) 138 if err := cg.ChainStore().Export(context.TODO(), last, last.Height(), false, buf); err != nil { 139 t.Fatal(err) 140 } 141 142 nbs := blockstore.NewMemory() 143 cs := store.NewChainStore(nbs, nbs, datastore.NewMapDatastore(), nil, nil) 144 defer cs.Close() //nolint:errcheck 145 146 root, err := cs.Import(buf) 147 if err != nil { 148 t.Fatal(err) 149 } 150 151 err = cs.SetHead(last) 152 if err != nil { 153 t.Fatal(err) 154 } 155 156 if !root.Equals(last) { 157 t.Fatal("imported chain differed from exported chain") 158 } 159 160 sm := stmgr.NewStateManager(cs) 161 for i := 0; i < 100; i++ { 162 ts, err := cs.GetTipsetByHeight(context.TODO(), abi.ChainEpoch(i), nil, false) 163 if err != nil { 164 t.Fatal(err) 165 } 166 167 st, err := sm.ParentState(ts) 168 if err != nil { 169 t.Fatal(err) 170 } 171 172 // touches a bunch of actors 173 _, err = sm.GetCirculatingSupply(context.TODO(), abi.ChainEpoch(i), st) 174 if err != nil { 175 t.Fatal(err) 176 } 177 } 178 }