Bloque de cadena Nota: El contrato se llama contratos inteligentes, RPC / llamadas IPC, RPC marco llamada común en web3 el objeto, con base en el ejemplo nodejs

Llamado contrato

  • El contrato de tres maneras
    • IPC方式
      • Por lo general, a través de la consola
      • Después de ejecutar nodos Ethernet, puede abrir una consola
      • En la consola en su interior por medio de comandos de entrada se puede recuperar algo del método de contrato inteligentes
      • IPC también puede ser la manera la comunicación tubería
      • Una llamada entre el proceso principal vía
    • HTTP的方式
      • Esto es más común de alguna manera
      • Por lo general, hacer la serialización JSON datos de formato y deserialización
      • Esa es la forma de HTTP JSON RPC
    • websocket的方式
      • soportes cuadrados el uso de WebSocket protocolo Ethernet interna interactúa directamente a los nodos internos de algunos contratos llamada
  • En estas tres formas, si hemos de ajustar los dos últimos por el cliente, HTTP JSON RPC de la forma y manera WebSocket
  • Y más IPC primera manera es hacer una depuración en el nodo de acceso de la máquina, una tubería de comunicación entre procesos

llamadas RPC / IPC

  • Ir versiones lingüísticas de lo anterior es un nodo plena plaza de Ethernet
  • Una versión de la más alta prioridad de un nodo es también el mantenimiento oficial de la plaza llamada Ethernet Geth, es decir, ETH nodo de idioma ir
  • Después de que se ejecuta, puede mandar $ geth console, así que traiga un control secundario, después de tanto correr nodo completo, entrará en una consola, la consola será capaz de entrar en
  • En la consola de la que se imprimirá cierta información asociada a la conexión, aquí podemos ver que tiene IPC endpoint, es decir una dirección de conexión de IPC
  • Esto se utiliza para ejecutar el sistema MAC, que se encuentra en la /Users/mac/Library/Ethereum/geth.ipcgeneración de un archivo de tales una ubicación predeterminadageth.ipc
  • La conexión de comunicación IPC es conectar a través de un documento compartido
  • También puede abrir otra consola sólo para el punto en el fichero puede IPC
  • La otra es la dirección del enlace HTTP, estamos a nivel local, por lo que es 127.0.0.1, número de puerto 8545
  • Después de entrar en el nodo de la consola puede ser un montón de comandos para acceder al éter
  • Consola de tipo salida a la salida

Marco Común RPC Invocación

  • Para que respecta a un nodo Ethernet, es un nodo de servidor de RPC soporte interno
  • Para el cliente se refiere, en la actualidad ha apoyado muchas versiones idiomas, como el soporte para las versiones lingüísticas de JavaScript llamada web3.js, esta versión es la versión más utilizada
  • Además, hay orientada en Java web3j idioma
  • Para C # Nethereum
  • Rubí soporte de idiomas Etereum-rubí
  • Con el desarrollo y también puede apoyar otras versiones lingüísticas van
  • Por supuesto, usted puede ser dueño de encapsular, esto puede ser debido a que la RPC es compatible con interfaces Ethernet son de código abierto, que podemos llegar a hacer sus propios paquetes, según sea necesario
Biblioteca Idioma Página del proyecto
web3.js JavaScript https://github.com/ethereum/web3.js
web3j Java https://github.com/web3j/web3j
Nethereum C # .NET https://github.com/Nethereum/Nethereum
Etereum-rubí Rubí https://github.com/DigixGlobal/ethereum-ruby

Acerca de los objetos WEB3

  • web3.js objetos
    • API JavaScript Ethernet Square
      • Esto se puede ver en web3 github repositorio, https://github.com/ethereum/web3.js/tree/1.x/packages este directorio
      • Que contiene cliente un conjunto de llamadas a las bibliotecas han sido envasados, es la versión Js Ethernet de la plaza del SDK
      • Una vez importada, hay una clase llamada WEB3, llame a la biblioteca en la parte superior de cada sub web3 esta biblioteca para implementar un paquete para que puedas ver ejemplo de red oficial
    • Ordinaria JSON RPC
      • Los parámetros y valores de retorno son serializados por JSON y deserialización
    • Necesidad de cumplir con el Ethernet nodos de la plaza
      • nodo de la red principal puede ser formal, sino también para probar la implementación del nodo privada o simulada
  • prueba de llamada a un objeto código web3
    var Web3 = require('web3');
    if(typeof web3 !== 'undefined') {
        web3 = new Web3(web3.currentProvider);
    } else {
        // set the provider you want from Web3.providers
        web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
    }
    var Version = web3.version;
    console.log("client version: " + version);
    

ejemplo nodejs Basado

var Web3 = require('web3');
if(typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
} else {
    // set the provider you want from Web3.providers
    web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

web3.eth.getAccounts(console.log);

10 salidas la dirección generada

null [
  '0x437615686191efF890C7cCa136cfbf21Cb6451E6',
  '0xe4a56746DAfDf247BF125d5809B2D6168722Eb37',
  '0x23604b6563d63D5f3b4C9a09ADe681F5f2811DB6',
  '0x4900AEeA7CC7F76E473805c50E8F0e49c1F99D8E',
  '0x1A32509bC3DAA2AC5493AE212064e59ebeaED34c',
  '0x7c0c971814dBA35D5c53E5650b71E91ecb8C31fa',
  '0x2DB7594e84DC79EE782f3962C1ea9cC2912c3EF1',
  '0x9D86096d38B4460Be319dA56265499D863ccB5c4',
  '0xD03cbC188201EB3AB61aC465Dc1e3A2fa517245C',
  '0x77238F0407aF96Fd26Fe22A9996B2349F1ebb91f'
]
发布了450 篇原创文章 · 获赞 254 · 访问量 72万+

Supongo que te gusta

Origin blog.csdn.net/Tyro_java/article/details/104987954
Recomendado
Clasificación