Blockchain Hyperledger将数据从PC上传到区块链
我正在尝试编写一个能够定期将数据上传到区块链的程序,例如我办公室的温度。可能吗?实现这一点最简单的方法是什么?应该没有问题,您需要编写自己的链码,该链码能够接收和更新分类账中的温度。此外,要将其与物联网设备连接,您需要开发一些中介应用程序,该应用程序需要利用一个可用SDK与您的链码进行交互 您可以找到并链接需要实现的API。关于如何开始使用Hyperledger Fabric以及如何使用Hyperledger,还有一个很好的教程 还有一些示例应用程序,让您体验如何使用开发链码并从应用程序与之交互Blockchain Hyperledger将数据从PC上传到区块链,blockchain,hyperledger,hyperledger-fabric,hyperledger-composer,Blockchain,Hyperledger,Hyperledger Fabric,Hyperledger Composer,我正在尝试编写一个能够定期将数据上传到区块链的程序,例如我办公室的温度。可能吗?实现这一点最简单的方法是什么?应该没有问题,您需要编写自己的链码,该链码能够接收和更新分类账中的温度。此外,要将其与物联网设备连接,您需要开发一些中介应用程序,该应用程序需要利用一个可用SDK与您的链码进行交互 您可以找到并链接需要实现的API。关于如何开始使用Hyperledger Fabric以及如何使用Hyperledger,还有一个很好的教程 还有一些示例应用程序,让您体验如何使用开发链码并从应用程序与之交互
下面是一个非常原始的示例,展示了您的链码的外观:
type temperatureSmartContract struct {
}
func (contract *temperatureSmartContract) Init(stub shim.ChaincodeStubInterface) peer.Response {
fmt.Println("Initialize chaincode if needed")
return shim.Success(nil)
}
func (contract *temperatureSmartContract) Invoke(stub shim.ChaincodeStubInterface) peer.Response {
funcName, params := stub.GetFunctionAndParameters()
if funcName == "addTemperature" {
// Store observation into ledger
stub.PutState("temperature", []byte(params[0]))
} else if funcName == "getTemperatures" {
iter, err := stub.GetHistoryForKey("temperature")
if err != nil {
shim.Error(fmt.Sprintf("%s", err))
}
var result []string
for iter.HasNext() {
mod, err := iter.Next()
if err != nil {
shim.Error(fmt.Sprintf("%s", err))
}
result = append(result, string(mod.Value))
}
return shim.Success([]byte(result))
}
return shim.Success(nil)
}
当然,这是将定期温度更新捕获到分类账中的一种非常原始的方法,同时它可以为您提供一个良好的开端