Detalhes de implementação para embalagem e descompactar
1 responda
- votos
-
- 2019-03-01
Euimplementei obloco
PACK
eUNPACK
emtezbridge-crypto
projeto.Vocêpode verificar o código-fonte aqui: codec.js # l426
.Aquiestão alguns casos deteste: index.js # l35
Empalavras curtas,existem váriosmapeamentos ( codec.js # l166 , codec.js # L288 )entre o valor MichLinee a representaçãobinária. A conversão é apenas umapassagem de um caminhoembora os dados,e cadatipo de dados (como
int
,string
..)tem seumétodoespecífico de codificação/decodificação.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.-
Euestavagreativeem torno do código-fonte do repositório [Tezos] (https://gitlab.com/tezos/tezos)para o OP_Mapping que vocêpossui.Estou curioso ondeestesmapeamentos são definidos lá,masnão osencontrei.Olhando através do códigofonte Tezosme levou a umafunção `write_rec`em`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
-
Estestambém sãobons recursos: [abiblioteca data_encoding] (http://tezos.gitlab.io/mainnet/tutorials/data_encoding.html)e [módulotezos_data_encoding.data_encoding] (http://tezos.gitlab.io/mainnet/API/API-inline.html # Tezos-data-codificação/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
no Operaçõesem bytes seção de O documentobranco de Michelson,émencionado que:
Estou curiosopara sabermais detalhes sobre como
pacote
edescompacte
sãoimplementadose qual é a representaçãobinária. Eu olhei através do código-fontee não hámuitos comentáriosnaimplementação.editar:
os detalhes que o usuário Catsigma deram émuito útil,maseu aindagostaria de ser capaz de seguir como a serializaçãofuncionano código-fontee onde a operaçãoparamapeamentos de códigobinário vêm de.
Euencontrei o
interp
aquie aimplementação depack
:src/proto_alpha/lib_protocol/src/script_interpreter.ml#l697
pack_data code> é definido aqui:
src/proto_alpha/lib_protocol/src/script_ir_translator.ml#l3162
data_encoding.binary.to_bytes_exn
parece afunção chave.src/lib_data_encoding/binary_writer.ml # l338
Agora vamostentarencontrar qual seria a codificação de
seria. Aquiestámais um código reorganizado src/lib_data_encoding/binary_writer.ml :
Agoraprecisamosencontrar
mbytes.set_int8
. Eu sóencontrei o arquivo de assinatura dotipo.src/lib_protocol_environment/sigs/v1/mbytes.mli
mbytes
Parece que é umabibliotecaexterna,masnãoencontrei onome. Além disso,eunãoestou vendo comoisso corresponde aoOP_Mapping
comomencionadoem Tezbridge-Crypto.