Je cours le code dans Chaincode for Developers Tutorial, pour exécuter un exemple de chaîne de base pour créer des actifs (paire clé-valeur) sur le registre.Comment est stocké le magasin de données dans Hyperledger Fabric lors de l'utilisation de CouchDB en tant que base de données State Ledger?
Je suis en mesure d'invoquer l'chaincode en utilisant le cli
peer chaincode invoke -n mycc -c '{"Args":["set", "a", "20"]}' -C myc
et aussi exécuter des requêtes
peer chaincode query -n mycc -c '{"Args":["query","a"]}' -C myc
Maintenant, je veux voir comment la valeur de clé paire est stockée dans CouchDB. Donc, je l'ai changé les variables d'environnement ci-dessous dans le tissu -échantillons/chaincode-docker-devmode/docker-Compose-simple.yaml
CORE_LEDGER_STATE_STATEDATABASE=CouchDB
CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
Je vois les documents créés comme ci-dessous dans l'interface utilisateur CouchDB (http://localhost:5984/myc/_all_docs) quand je cours ensemble.
{
"total_rows": 3,
"offset": 0,
"rows": [{
"id": "lscc\u0000mycc",
"key": "lscc\u0000mycc",
"value": {
"rev": "1-dc6dc8ff92efd35358cf5b89e7949c25"
}
},
{
"id": "mycc\u0000a",
"key": "mycc\u0000a",
"value": {
"rev": "3-7ad1349ec711a99a2a2f1dd1c8b08a20"
}
},
{
"id": "statedb_savepoint",
"key": "statedb_savepoint",
"value": {
"rev": "6-2c3d131fc75772cc9e70311998bdde9d"
}
}
]
}
Comment/Où la valeur de la clé est-elle stockée et extraite? Il est vu comme ci-dessous, lors de la vérification du document dans la base de données, mais est récupéré correctement lors de l'exécution de la requête get chaincode.
"value": {
"rev": "3-7ad1349ec711a99a2a2f1dd1c8b08a20"
}
Lorsque
http: // localhost: 5984/myc/_all_docs donne le résultat suivant { "TOTAL_ROWS": 3, "offset": 0, "lignes": [{ "id": "LSCC \ u0000mycc" "clé": "LSCC \ u0000mycc" "Valeur": "rev": "1-35f379c3ea35ef0077b595923bf36151" } }, { "id": "Mycc \ u0000a", "clé": "Mycc \ u0000a", "valeur": { "rev": "2-f3049e0b19f6969f01671889c8b1456f" } }, { « id « : "statedb_savepoint", "clé": "statedb_savepoint", "valeur": { "rev": "3-62ba0d88e905ef321c85c542bec7bd15" }} ] } –
Comment puis-je obtenir la valeur de la clé ' mycc \ u0000a '? http: // localhost: 5984/myc/mycc \ u0000a ne semble pas fonctionner. Essayé URL codée http: // localhost: 5984/myc/mycc% 5Cu0000a aussi –
Comment est-il converti en '/ mycc% 00a', qui semble fonctionner curl -X GET "http: // localhos": 5984/myc/mycc% 00a? attachments = true ". –