Détails de la mise en œuvre pour emballer et déballer
1 réponses
- votes
-
- 2019-03-01
J'aimisen place le
PACK
etUNPACK
danstezbridge-crypto
projet.Vouspouvez vérifier le code sourceici: codec.js # L426
Voici quelques cas detest: Index.js # L35
Entermes courts,il y aplusieursmappages ( codec.js # l166 , codec.js # L288 )entre la valeur Michlineet la représentationbinaire. La conversionestjuste unemarche aller simple,bien que les donnéeset chaquetype de données (comme
int
,string
..) a saméthode de codage/décodage spécifique.I have implemented the
PACK
andUNPACK
intezbridge-crypto
project.You can checkout the source code here: codec.js#L426
Here are some test cases: index.js#L35
In short words, there are several mappings(codec.js#L166, codec.js#L288) between the Michline value and the binary representation. The conversion is just a one way walk though the data, and each data type(like
int
,string
..) has its specific encoding/decoding method.-
J'étaisgrepping autour du code source du référentiel [Tezos://gitlab.com/TTPS/TEZOS)pour l'op_mapping que vous avez.Je suis curieux d'où cesmappages sont définis là-bas,maisje ne les aipastrouvés.La recherche via le code source Tezosm'a conduit à unefonction `write_rec`in`binary_writer.ml`.I was grepping around the source code from the [tezos](https://gitlab.com/tezos/tezos) repository for the op_mapping you have. I am curious where these mappings are defined in there, but I have not found them. Looking through tezos source code has led me to a function `write_rec` in `binary_writer.ml`.
- 0
- 2019-03-04
- MCH
-
Ce sont également debonnes ressources: [labibliothèque Data_Encoding] (http://tezos.gitlab.io/mainnet/Tortials/data_encoding.html)et [moduletezos_data_encoding.data_coding] (http://tezos.gitlab.io/mainnet/API/API-INLINORE.HTML # Tezos-Data-coding/Tezos_Data_Encoding/Index.html)These are also good resources: [The data_encoding library](http://tezos.gitlab.io/mainnet/tutorials/data_encoding.html) and [Module Tezos_data_encoding.Data_encoding](http://tezos.gitlab.io/mainnet/api/api-inline.html#tezos-data-encoding/Tezos_data_encoding/index.html)
- 0
- 2019-03-04
- MCH
dans le Opérations sur Bytes Section de Le document White Michelson,ilestmentionné que:
Je suis curieux de savoirplus de détails sur lamanière dont
pack
etDéballez
sontimplémentéset quelleest la représentationbinaire. J'aiexaminé le code sourceet iln'y apas denombreux commentaires dans lamiseen œuvre.EDIT:
Les détails que l'utilisateur CATSIGMA a donné sonttrès utiles,maisj'aimeraistoujourspouvoir suivre lamanière que la sérialisationfonctionne dans le code sourceet où l'opération auxmappages de codebinaireprovient.
J'aitrouvé lafonction
interprétation
iciet lamiseen œuvre depack
:src/proto_alpha/lib_protocol/src/script_interpreter.ml#l697
pack_data code>est définiici:
src/proto_alpha/lib_protocol/src/script_ir_translator.ml#l3162
data_encoding.binaire.to_bytes_exn
ressemble à lafonction detouche.src/lib_data_encoding/binaire_writer.ml # L338
Essayonsmaintenant detrouver ce que le codage de
faux
serait. Voici quelques autres codes réorganisés src/lib_data_encoding/binaire_writer.ml :Maintenant,nous devonstrouver
mbytes.set_int8
. Jen'aitrouvé que lefichier de signature detype.SRC/LIB_PROTOCOL_Environment/SIGS/V1/mbylees.mli
mbytes
semble être unebibliothèqueexternemaisje n'aipastrouvé lenom. Deplus,je ne voispas comment cela correspond à la op_mapping commementionné dans Tezbridge-crypto.