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  //}