github.com/cheng762/platon-go@v1.8.17-0.20190529111256-7deff2d7be26/core/ppos_storage/ppos_temp_test.go (about) 1 package ppos_storage 2 3 //func TestData(t *testing.T) { 4 // ldb, err := ethdb.NewLDBDatabase("E:/platon-data/platon/ppos_storage", 0, 0) 5 // if err!=nil { 6 // t.Errorf("NewLDBDatabase faile") 7 // } 8 // pposTemp := NewPPosTemp(ldb) 9 // t.Logf("pposTemp info, pposTemp=%+v", pposTemp) 10 // 11 // pposStorage := NewPPOS_storage() 12 // t.Logf("pposTemp info, pposStorage=%+v", pposStorage) 13 // 14 // pposStorage.t_storage.Sq = 51200 15 // 16 // nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 17 // 18 // //voteOwner := common.HexToAddress("0x20") 19 // //deposit := new(big.Int).SetUint64(1) 20 // blockNumber := new(big.Int).SetUint64(10) 21 // 22 // for i := 0; i < 51200; i++ { 23 // txHash := common.Hash{} 24 // txHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 25 // 26 // /*ticket := &types.Ticket{ 27 // voteOwner, 28 // deposit, 29 // nodeId, 30 // blockNumber, 31 // 2, 32 // }*/ 33 // 34 // count := uint32(i) + uint32(time.Now().UnixNano()) 35 // price := big.NewInt(int64(count)) 36 // 37 // //pposStorage.SetExpireTicket(blockNumber, txHash) 38 // pposStorage.AppendTicket(nodeId, txHash, count, price) 39 // } 40 // 41 // for i := 0; i < 1; i++ { 42 // blockHash := common.Hash{} 43 // blockHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 44 // startTempTime := time.Now().UnixNano() 45 // pposTemp.SubmitPposCache2Temp(blockNumber, new(big.Int).SetUint64(1), blockHash, pposStorage) 46 // endTempTime := time.Now().UnixNano() 47 // t.Log("Testing Cache2Temp efficiency", "startTime", startTempTime, "endTime", endTempTime, "time", endTempTime/1e6-startTempTime/1e6) 48 // startTime := time.Now().UnixNano() 49 // pposTemp.Commit2DB(blockNumber, blockHash) 50 // endTime := time.Now().UnixNano() 51 // t.Log("Testing Cache2Temp efficiency", "startTime", startTime, "endTime", endTime, "time", endTime/1e6-startTime/1e6) 52 // } 53 //} 54 55 56 // 57 //func TestData2(t *testing.T) { 58 // //ldb, err := ethdb.NewLDBDatabase("E:/platon-data/platon/ppos_storage", 0, 0) 59 // ldb, err := ethdb.NewPPosDatabase("E:/platon-data/platon/ppos_storage") 60 // if err!=nil { 61 // t.Errorf("NewLDBDatabase faile") 62 // } 63 // pposTemp := NewPPosTemp(ldb) 64 // t.Logf("pposTemp info, pposTemp=%+v", pposTemp) 65 // 66 // 67 // 68 // 69 // for i := 0; i < 100; i++ { 70 // 71 // pposStorage := NewPPOS_storage() 72 // t.Logf("pposTemp info, pposStorage=%+v", pposStorage) 73 // 74 // pposStorage.t_storage.Sq = 51200 75 // 76 // nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 77 // 78 // /*voteOwner := common.HexToAddress("0x20") 79 // 80 // 81 // deposit := new(big.Int).SetUint64(uint64(rand.Int63()))*/ 82 // 83 // for i := 0; i < 51200; i++ { 84 // 85 // //now := time.Now().UnixNano() 86 // 87 // 88 // txHash := common.Hash{} 89 // txHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 90 // //blockNumber := new(big.Int).SetUint64(uint64(i) + uint64(now)) 91 // /*ticket := &types.Ticket{ 92 // voteOwner, 93 // deposit, 94 // nodeId, 95 // blockNumber, 96 // 2, 97 // }*/ 98 // 99 // count := uint32(i) + uint32(time.Now().UnixNano()) 100 // price := big.NewInt(int64(count)) 101 // 102 // //pposStorage.SetExpireTicket(blockNumber, txHash) 103 // pposStorage.AppendTicket(nodeId, txHash, count, price) 104 // } 105 // 106 // blockHash := common.Hash{} 107 // blockHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 108 // startTempTime := time.Now().UnixNano() 109 // pposTemp.SubmitPposCache2Temp(new(big.Int).SetUint64(uint64(i)), new(big.Int).SetUint64(1), blockHash, pposStorage) 110 // endTempTime := time.Now().UnixNano() 111 // t.Log("Testing Cache2Temp efficiency", "startTime", startTempTime, "endTime", endTempTime, "time", endTempTime/1e6-startTempTime/1e6) 112 // startTime := time.Now().UnixNano() 113 // pposTemp.Commit2DB(new(big.Int).SetUint64(uint64(i)), blockHash) 114 // endTime := time.Now().UnixNano() 115 // t.Log("Testing Cache2Temp efficiency", "startTime", startTime, "endTime", endTime, "time", endTime/1e6-startTime/1e6) 116 // } 117 //} 118 119 120 //func newSqliteDB(file, tableName string, t *testing.T) (*sql.DB, error) { 121 // db, err := sql.Open("sqlite3", file) 122 // if err != nil { 123 // t.Error("open database err: ", err) 124 // return nil, err 125 // } 126 // //defer db.Close() 127 // 128 // sqlStmt := fmt.Sprintf(`create table if not exists %s (id Integer primary key, key varchar(10), value blob);`, tableName) 129 // _, err = db.Exec(sqlStmt) 130 // if err != nil { 131 // t.Logf("create table %q: %s\n", err, sqlStmt) 132 // return nil, err 133 // } 134 // return db, nil 135 //} 136 137 138 //func TestData3(t *testing.T) { 139 // 140 // 141 // db, err := newSqliteDB("E:/platon-data/platon/ppos_storage.db", "storage", t) 142 // 143 // if nil != err { 144 // return 145 // } 146 // 147 // tx, err := db.Begin() 148 // if err != nil { 149 // t.Error(err) 150 // } 151 // 152 // start := common.NewTimer() 153 // start.Begin() 154 // 155 // 156 // //pposStorage := NewPPOS_storage() 157 // // 158 // //pposStorage.t_storage.Sq = 51200 159 // // 160 // //nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 161 // // 162 // //voteOwner := common.HexToAddress("0x20") 163 // 164 // for i := 0; i < 20; i++ { 165 // 166 // pposStorage := NewPPOS_storage() 167 // 168 // pposStorage.t_storage.Sq = 51200 169 // 170 // nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 171 // 172 // //voteOwner := common.HexToAddress("0x20") 173 // // 174 // // 175 // //deposit := new(big.Int).SetUint64(uint64(rand.Int63())) 176 // 177 // for j := 0; j < 51200; j++ { 178 // 179 // txHash := common.Hash{} 180 // txHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 181 // //blockNumber := new(big.Int).SetUint64(uint64(j)) 182 // /*ticket := &types.Ticket{ 183 // voteOwner, 184 // deposit, 185 // nodeId, 186 // blockNumber, 187 // 2, 188 // }*/ 189 // 190 // 191 // count := uint32(i) + uint32(time.Now().UnixNano()) 192 // price := big.NewInt(int64(count)) 193 // //pposStorage.SetExpireTicket(blockNumber, txHash) 194 // pposStorage.AppendTicket(nodeId, txHash, count, price) 195 // } 196 // 197 // 198 // blockHash := common.Hash{} 199 // blockHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 200 // 201 // blockNumber := new(big.Int).SetUint64(uint64(i)) 202 // 203 // if pposTemp := buildPBStorage(blockNumber, blockHash, pposStorage); nil == pposTemp { 204 // t.Log("Call Commit2DB FINISH !!!! , PPOS storage is Empty, do not write disk AND direct short-circuit ...") 205 // }else{ 206 // // write ppos_storage into disk with protobuf 207 // if data, err := proto.Marshal(pposTemp); nil != err { 208 // t.Log("Failed to Commit2DB", "proto err", err, "Time spent", fmt.Sprintf("%v ms", start.End())) 209 // }else { 210 // 211 // t.Log("Call Commit2DB, write ppos storage data to disk", "blockNumber", blockNumber, "blockHash", blockHash, "data len", len(data), "Time spent", fmt.Sprintf("%v ms", start.End())) 212 // // replace into student( _id , name ,age ) VALUES ( 1,'zz7zz7zz',25) 213 // txsql := fmt.Sprintf("replace into %s (id, key, value) values(1, ?, ?)", "storage") 214 // args := []interface{}{ 215 // PPOS_STORAGE_KEY, 216 // data, 217 // //[]byte{}, 218 // } 219 // 220 // 221 // 222 // res, err := tx.Exec(txsql, args...) 223 // if err != nil { 224 // t.Error("tx.Prepare err: ", err) 225 // tx.Rollback() 226 // return 227 // } 228 // 229 // id, _ := res.LastInsertId() 230 // t.Log("Call Commit2DB, write ppos storage data to disk", "blockNumber", blockNumber, "blockHash", blockHash, "data len", len(data), "lastRow", id, "Time spent", fmt.Sprintf("%v ms", start.End())) 231 // } 232 // } 233 // } 234 // tx.Commit() 235 //} 236 237 //func TestData(t *testing.T) { 238 // ldb, err := ethdb.NewLDBDatabase("E:/platon-data/platon/ppos_storage", 0, 0) 239 // if err!=nil { 240 // t.Errorf("NewLDBDatabase faile") 241 // } 242 // pposTemp := NewPPosTemp(ldb) 243 // t.Logf("pposTemp info, pposTemp=%+v", pposTemp) 244 // 245 // pposStorage := NewPPOS_storage() 246 // t.Logf("pposTemp info, pposStorage=%+v", pposStorage) 247 // 248 // pposStorage.t_storage.Sq = 51200 249 // 250 // nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 251 // 252 // voteOwner := common.HexToAddress("0x20") 253 // deposit := new(big.Int).SetUint64(1) 254 // blockNumber := new(big.Int).SetUint64(10) 255 // 256 // for i := 0; i < 51200; i++ { 257 // txHash := common.Hash{} 258 // txHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 259 // 260 // ticket := &types.Ticket{ 261 // voteOwner, 262 // deposit, 263 // nodeId, 264 // blockNumber, 265 // 2, 266 // } 267 // 268 // pposStorage.SetExpireTicket(blockNumber, txHash) 269 // pposStorage.AppendTicket(nodeId, txHash, ticket) 270 // } 271 // 272 // for i := 0; i < 1; i++ { 273 // blockHash := common.Hash{} 274 // blockHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 275 // startTempTime := time.Now().UnixNano() 276 // pposTemp.SubmitPposCache2Temp(blockNumber, new(big.Int).SetUint64(1), blockHash, pposStorage) 277 // endTempTime := time.Now().UnixNano() 278 // t.Log("Test Cache2Temp efficiency", "startTime", startTempTime, "endTime", endTempTime, "time", endTempTime/1e6-startTempTime/1e6) 279 // startTime := time.Now().UnixNano() 280 // pposTemp.Commit2DB(ldb, blockNumber, blockHash) 281 // endTime := time.Now().UnixNano() 282 // t.Log("Test Commit2DB efficiency", "startTime", startTime, "endTime", endTime, "time", endTime/1e6-startTime/1e6) 283 // } 284 //} 285 286 287 288 //func TestData2(t *testing.T) { 289 // //ldb, err := ethdb.NewLDBDatabase("E:/platon-data/platon/ppos_storage", 0, 0) 290 // ldb, err := ethdb.NewPPosDatabase("E:/platon-data/platon/ppos_storage") 291 // if err!=nil { 292 // t.Errorf("NewLDBDatabase faile") 293 // } 294 // pposTemp := NewPPosTemp(ldb) 295 // t.Logf("pposTemp info, pposTemp=%+v", pposTemp) 296 // 297 // pposStorage := NewPPOS_storage() 298 // t.Logf("pposTemp info, pposStorage=%+v", pposStorage) 299 // 300 // pposStorage.t_storage.Sq = 51200 301 // 302 // nodeId := discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345") 303 // 304 // voteOwner := common.HexToAddress("0x20") 305 // 306 // 307 // 308 // for i := 0; i < 10; i++ { 309 // 310 // 311 // deposit := new(big.Int).SetUint64(uint64(rand.Int63())) 312 // 313 // 314 // for i := 0; i < 51200; i++ { 315 // txHash := common.Hash{} 316 // txHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 317 // blockNumber := new(big.Int).SetUint64(uint64(i)) 318 // ticket := &types.Ticket{ 319 // voteOwner, 320 // deposit, 321 // nodeId, 322 // blockNumber, 323 // 2, 324 // } 325 // 326 // pposStorage.SetExpireTicket(blockNumber, txHash) 327 // pposStorage.AppendTicket(nodeId, txHash, ticket) 328 // } 329 // 330 // 331 // 332 // 333 // blockHash := common.Hash{} 334 // blockHash.SetBytes(crypto.Keccak256([]byte(strconv.Itoa(time.Now().Nanosecond() + i)))) 335 // startTempTime := time.Now().UnixNano() 336 // pposTemp.SubmitPposCache2Temp(new(big.Int).SetUint64(uint64(i)), new(big.Int).SetUint64(1), blockHash, pposStorage) 337 // endTempTime := time.Now().UnixNano() 338 // t.Log("Test Cache2Temp efficiency", "startTime", startTempTime, "endTime", endTempTime, "time", endTempTime/1e6-startTempTime/1e6) 339 // startTime := time.Now().UnixNano() 340 // pposTemp.Commit2DB(ldb, new(big.Int).SetUint64(uint64(i)), blockHash) 341 // endTime := time.Now().UnixNano() 342 // t.Log("Test Commit2DB efficiency", "startTime", startTime, "endTime", endTime, "time", endTime/1e6-startTime/1e6) 343 // } 344 //}