Elaborar un contrato

En esta secci贸n, descargaremos el c贸digo de un contrato de ejemplo y lo compilaremos en un ejecutable binario wasm.

Pre requisitos

Consulte la gu铆a Configuraci贸n del entorno para instalar las dependencias necesarias antes de continuar.

Descargar el contrato

Comience descargando el repositorio cw-contracts. Compilar谩s el contrato de servicio de nombres.

Clonar el repositorio:

git clone https://github.com/InterWasm/cw-contracts
cd cw-contracts
git checkout main
cd contracts/nameservice

Compile el contrato

Compile usando cargo

Ejecute el siguiente comando para compilar el contrato:

cargo wasm

Tras la compilaci贸n, deber铆a generarse el fichero target/wasm32-unknown-unknown/release/cw_nameservice.wasm. El tama帽o del archivo es de aproximadamente 1,9 MB, lo que indica que se trata de una compilaci贸n de lanzamiento pero que a煤n no se ha eliminado todo el c贸digo innecesario. Para almacenar el contrato en la cadena, se requiere optimizaci贸n. Consulte la secci贸n Compilaci贸n optimizada para obtener instrucciones sobre c贸mo optimizar un contrato.

Compilar con archway developer cli

Ejecute el siguiente comando para compilar el contrato:

archway build

Este proceso tambi茅n genera una versi贸n no optimizada del contrato, que deber谩 ser optimizada antes de ser almacenada en la cadena.

Compilaci贸n optimizada

Para reducir los costes de gas, el tama帽o binario debe ser lo m谩s peque帽o posible. De este modo, el despliegue ser谩 menos costoso y las tasas por cada interacci贸n ser谩n m谩s bajas. Afortunadamente, hay herramientas disponibles para ayudar con esto. Estas herramientas de optimizaci贸n producen construcciones reproducibles de contratos inteligentes CosmWasm. Esto significa que terceras partes pueden verificar que el contrato contiene realmente el c贸digo reclamado.

Optimizar con archway developer cli

Para construir un binario wasm optimizado para su almacenamiento en la blockchain, utiliza la bandera --optimize. La CLI de Archway Developer utiliza rust-optimizer en segundo plano:

archway build --optimize

Optimiza usando cargo

El siguiente comando deber铆a dar un contrato optimizado que puede ser almacenado en cadena:

RUSTFLAGS='-C link-arg=-s' cargo wasm

Optimizaci贸n con rust-optimizer

Informaci贸n

Necesitar谩 tener instalado Docker para ejecutar rust-optimizer.

Navega a la ra铆z del proyecto y ejecuta el siguiente comando:

docker run --rm -v "$(pwd)":/code \
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/rust-optimizer:0.12.12

Este comando optimizar谩 el archivo .wasm y generar谩 un archivo .wasm optimizado en el directorio de artefactos.

Last updated