Compilación e implementación de contratos inteligentes en entorno de nodos.

Ganache seleccionado para entorno de prueba

npm install ganache-cli

Asegúrese de que web3 y solcjs se hayan instalado en el entorno.

Consulte la publicación del blog para instalar web3 y solc.

Instalación de CentOS 7 en el entorno web3 y creación de objetos_blog-CSDN de blog de m0_47233175 icono-default.png?t=LA92https://blog.csdn.net/m0_47233175/article/details/121960931

Configuración e instalación de npm y solc del entorno CentOS 7_m0_47233175's blog-CSDN blog icono-default.png?t=LA92https://blog.csdn.net/m0_47233175/article/details/121959778

1. En el nodo, use solc para compilar contratos inteligentes

1. Cree una instancia del objeto web3.

var web = require('we3')
var web3 = new web(new web.providers.HttpProvider("HTTP://LOCALHOST:8545"))

2.Introducir solc

var solc = require('solc')

3. Utilice el sistema de archivos del nodo para leer contratos inteligentes de forma sincrónica

var sourceCode = fs.readFileSync('Voting.sol').toString()

Nota: El contrato inteligente aquí toma Voting.sol como ejemplo y debe almacenarse en el mismo directorio que el nodo abierto en este momento.

4. Utilice solc para compilar el contrato inteligente (el resultado final compilado es un objeto js)

var compiledCode = solc.compile(sourceCode)

Es posible que se informe un error en este momento. Para obtener soluciones, consulte la siguiente publicación de blog para resolver el problema del uso de solc para compilar contratos inteligentes en el entorno de nodo blog_m0_47233175-blog CSDN icono-default.png?t=LA92https://blog.csdn.net/m0_47233175/ artículo/detalles/121999193

2. Implementar contratos inteligentes

1. Saque abi y bin en código compilado (convierta abi al formato JSON)

var abi = JSON.parse(compiledCode.contracts[':Voting'].interface)
var bin = compiledCode.contracts[':Voting'].bytecode

2. Cree un objeto de contrato

var VotingContract = web3.eth.contract(abi)

3. Cree objetos de transacción para contratos de implementación.

var depolyTxObj = {data:bin,from:web3.eth.accounts[0],gas:30000}

4. Cree una transacción que implemente el contrato.

var contractInstance = VotingContract.new([parameter],depolyTxObj)

Nota: El parámetro se completa con los parámetros requeridos por el constructor en el contrato implementado.

Pueden ocurrir los siguientes errores

Intente cambiar el valor del gas en el paso 7. La prueba del blogger se cambió a 600000 y pasó.

Supongo que te gusta

Origin blog.csdn.net/m0_47233175/article/details/121999413
Recomendado
Clasificación