J'essaye d'écrire un programme qui est capable de télécharger périodiquement des données à une blockchain, par exemple la température dans mon bureau. C'est possible? Quelle serait l'approche la plus simple pour y parvenir?Hyperledger télécharger des données de PC à blockchain
Répondre
Il ne devrait pas y avoir de problème, vous devez écrire votre propre code qui sera capable de recevoir et de mettre à jour la température dans le grand livre. De plus, pour le connecter avec un périphérique IoT, vous devrez développer une application de médiation qui doit utiliser l'un des SDK disponibles pour interagir avec votre chaincode.
Here vous pouvez trouver et chaincoder API que vous aurez besoin de mettre en œuvre. Il ya aussi un bon tutoriel sur la façon de commencer avec Hyperledger Fabric network et comment Write Your First Application.
Il y a aussi un repository avec quelques exemples d'applications pour vous donner un avant-goût de la façon de développer le chaincode et d'interagir avec lui à partir de l'application en utilisant NodeJS SDK.
Voici exemple très primitif de la façon dont votre chaincode pourrait ressembler à:
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)
}
Bien sûr, cela est de manière très primitive pour capturer des mises à jour périodiques de température dans le grand livre, alors qu'il pourrait vous fournir un bon début.