Difference between revisions of "RICM5 2018 2019 - UGAChain - Interface du smart contract"

From air
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 25: Line 25:
   
 
Cette fonction ajoute le hash passé en paramètre au world state du ledger avec pour valeur initiale la chaîne de caractères <code>VALID</code>.
 
Cette fonction ajoute le hash passé en paramètre au world state du ledger avec pour valeur initiale la chaîne de caractères <code>VALID</code>.
Si le hash est déjà présent dans le world state, la chaîne de caractère <code>ALREADY_PRESENT</code> est retournée.
+
Si le hash est déjà présent dans le world state, la chaîne de caractère <code>ALREADY_EXIST</code> est retournée.
   
 
* <code>func (t *SimpleChaincode) setValid(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
 
* <code>func (t *SimpleChaincode) setValid(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
Line 32: Line 32:
   
 
* <code>func (t *SimpleChaincode) setFraudulent(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
 
* <code>func (t *SimpleChaincode) setFraudulent(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
  +
  +
Les trois fonctions ci-dessus positionnent respectivement l'état du hash passé en paramètre sur <code>VALID</code>, <code>INVALID</code> et <code>FRAUDULENT</code>.
  +
En cas de succès nil est retourné. Si le hash est déjà positionné sur la valeur ciblée, la chaîne de caractères <code>ALREADY_SET</code> est retournée. Si le hash est introuvable au sein du world state, la chaîne de caractères <code>NOT_FOUND</code> est retournée.

Latest revision as of 11:47, 18 March 2019

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.

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

Cette fonction ajoute le hash passé en paramètre au world state du ledger avec pour valeur initiale la chaîne de caractères VALID. Si le hash est déjà présent dans le world state, la chaîne de caractère ALREADY_EXIST est retournée.

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

Les trois fonctions ci-dessus positionnent respectivement l'état du hash passé en paramètre sur VALID, INVALID et FRAUDULENT. En cas de succès nil est retourné. Si le hash est déjà positionné sur la valeur ciblée, la chaîne de caractères ALREADY_SET est retournée. Si le hash est introuvable au sein du world state, la chaîne de caractères NOT_FOUND est retournée.