RICM5 2018 2019 - UGAChain - Interface du smart contract

From air
Revision as of 11:05, 18 March 2019 by Jordan.Jean (talk | contribs)
Jump to navigation Jump to search

Le smart contract de la blockchain utilisée par UGAChain, dénommé ugachaincode, a été rédigé dans le langage Go. Les différentes fonctions implémentées dans celui-ci sont décrites ci-dessous.

  • func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response

Cette fonction est appelée lors de l'instanciation du réseau de la blockchain. Actuellement celle-ci se contente de laisser une trace de l'initialisation du réseau Hyperledger et retourne nil.

  • func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response

Cette fonction permet l'invocation des fonctions du smart contract. Celle-ci appelle la fonction dont le nom et les paramètres sont passés en paramètre. La valeur de retour de la fonction appelée est retournée. Si la fonction appelée n'existe pas, une erreur est retournée.

  • func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response

Cette fonction supprime le hash passé en paramètre du world state (une transaction de la suppression est ajoutée au ledger). Nil est retourné en cas de succès, une erreur est retournée sinon.

  • func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response

Cette fonction consulte le world state et recherche le hash passé en paramètre. La valeur associée au hash est retournée en cas de succès, la chaîne de caractères NOT_FOUND est retournée si le hash est introuvable.