當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Ledger.GetTempStateHash方法代碼示例

本文整理匯總了Golang中github.com/hyperledger/fabric/core/ledger.Ledger.GetTempStateHash方法的典型用法代碼示例。如果您正苦於以下問題:Golang Ledger.GetTempStateHash方法的具體用法?Golang Ledger.GetTempStateHash怎麽用?Golang Ledger.GetTempStateHash使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/hyperledger/fabric/core/ledger.Ledger的用法示例。


在下文中一共展示了Ledger.GetTempStateHash方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: ExecuteTransactions

//ExecuteTransactions - will execute transactions on the array one by one
//will return an array of errors one for each transaction. If the execution
//succeeded, array element will be nil. returns []byte of state hash or
//error
func ExecuteTransactions(ctxt context.Context, cname ChainName, xacts []*pb.Transaction) (succeededTXs []*pb.Transaction, stateHash []byte, ccevents []*pb.ChaincodeEvent, txerrs []error, err error) {
	var chain = GetChain(cname)
	if chain == nil {
		// TODO: We should never get here, but otherwise a good reminder to better handle
		panic(fmt.Sprintf("[ExecuteTransactions]Chain %s not found\n", cname))
	}

	txerrs = make([]error, len(xacts))
	ccevents = make([]*pb.ChaincodeEvent, len(xacts))
	var succeededTxs = make([]*pb.Transaction, 0)
	for i, t := range xacts {
		_, ccevents[i], txerrs[i] = Execute(ctxt, chain, t)
		if txerrs[i] == nil {
			succeededTxs = append(succeededTxs, t)
		}
	}

	var lgr *ledger.Ledger
	lgr, err = ledger.GetLedger()
	if err == nil {
		stateHash, err = lgr.GetTempStateHash()
	}

	return succeededTxs, stateHash, ccevents, txerrs, err
}
開發者ID:ysj3223498,項目名稱:fabric,代碼行數:29,代碼來源:exectransaction.go

示例2:

			ledgerTransaction, err := ledgerPtr.GetTransactionByUUID(uuid)
			Expect(err).To(BeNil())
			Expect(tx).To(Equal(ledgerTransaction))
			state, _ := ledgerPtr.GetState("chaincode1", "key1", true)
			Expect(state).To(Equal([]byte("value1")))
			state, _ = ledgerPtr.GetState("chaincode2", "key2", true)
			Expect(state).To(Equal([]byte("value2")))
			state, _ = ledgerPtr.GetState("chaincode3", "key3", true)
			Expect(state).To(Equal([]byte("value3")))
		})
		It("rollsback the batch and compares values for TempStateHash", func() {
			var hash0, hash1 []byte
			var err error
			Expect(ledgerPtr.RollbackTxBatch(1)).To(BeNil())
			hash0, err = ledgerPtr.GetTempStateHash()
			Expect(err).To(BeNil())
			Expect(ledgerPtr.BeginTxBatch(2)).To(BeNil())
			ledgerPtr.TxBegin("txUuid")
			Expect(ledgerPtr.SetState("chaincode1", "key1", []byte("value1"))).To(BeNil())
			Expect(ledgerPtr.SetState("chaincode2", "key2", []byte("value2"))).To(BeNil())
			Expect(ledgerPtr.SetState("chaincode3", "key3", []byte("value3"))).To(BeNil())
			ledgerPtr.TxFinished("txUuid", true)
			hash1, err = ledgerPtr.GetTempStateHash()
			Expect(err).To(BeNil())
			Expect(hash0).ToNot(Equal(hash1))
			Expect(ledgerPtr.RollbackTxBatch(2)).To(BeNil())
			hash1, err = ledgerPtr.GetTempStateHash()
			Expect(err).To(BeNil())
			Expect(hash0).To(Equal(hash1))
		})
開發者ID:Colearo,項目名稱:fabric,代碼行數:30,代碼來源:ledger_test.go


注:本文中的github.com/hyperledger/fabric/core/ledger.Ledger.GetTempStateHash方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。