在linux系统中运行Pantheon与Java以太坊客户端

2019-08-17 20:03 栏目:经验之谈 来源: 查看()
这是关于安装Pathon,Ethereum的Java客户端部分的系列文章的第一篇: ·Linux · 苹果系统 ·窗户 使用工具栏中的一些强大工具对于Java开发人员来说至关重要,而以太坊区块链开发人员的关键工具之一就是Web客户端。这是用于与区块链进行数据通信的软件。客户端:旋转启动节点并充当对等发现代理,看到其他人参与网络,并验证和发送事务。 本指南可帮助您安装和设置使用以太网进行以太网编程所需的核心部件。虽然有一些很棒的Web客户端,但Pantheon是唯一用Java编写的客户端。 Pantheon是一个以用Java编写的开源Apache 2.0许可证的以太坊客户端。它与主网络兼容,具有模块化架构,并具有隐私和权限功能以及新的共识算法。 这是在Linux/macOS/Windows上安装和配置Pantheon客户端的一系列分步指南中的第一个。本指南重点介绍Linux操作系统,但您可以使用macOS上的许多命令和步骤进行一些基本更改。

万神殿和Docker

在安装之前,我建议任何人第一次使用我们的Docker镜像来设置和安装Pantheon。执行此操作的要求是安装Docker并使用Linux或macOS。您可以使用单个docker命令运行Pantheon的mainnet,local或rinkeby版本,然后使用curl或类似工具获取或发布数据到正在运行的节点。 对于快速临时测试,本指南使用/tmp/pantheon/dev /,/tmp/pantheon/mainnet /,/tmp/pantheon/rinkeby /作为安装卷,每次启动时都会自动清除。您可以改为创建其他文件夹,但无论您选择哪个选项,请务必先创建该文件夹。 $ mkdir -p/tmp/pantheon/dev / $ mkdir -p/tmp/pantheon/mainnet / $ mkdir -p/tmp/pantheon/rinkeby / 这里有些例子: 主网络节点: Docker最近运行pegasyseng/pantheon: 启用了Websockets和HTTP RPC服务的本地测试节点: Docker运行-p 8545: 8545 -p 8546: 8546 --mount Type=bind,source=/tmp/pantheon/dev,target=/var/lib/pantheon pegasyseng / 万神殿:最新--miner-enabled --miner-coinbase Fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-originins='all' --rpc-ws-enabled --network=dev Rinkeby节点: Docker运行-p 30303: 30303 --mount type=bind, 源=/TMP /神殿/rinkeby,目标=的/var/lib中/神殿 Pegasyseng/pantheon:最新--network=rinkeby 节点运行时,您可以使用另一个终端窗口与节点进行交互。 例如,使用curl调用eth-chainid rpc方法: 卷曲-X POST - 数据'{'jsonrpc':'2.0','方法':'eth_chainId','params': [], 'id': 1}'localhost: 8545

Linux入门

有两种安装方法: 安装二进制包并按照本节中的说明跳过下一步。 从源代码构建,跳到本节。 要求:对于这两种方法,Pantheon需要在您的计算机上安装Java JDK。 Pantheon的当前版本需要安装Java JDK 11+。 二进制安装 如果您正在运行专用网络,请记住至少有4GB的RAM并查看其他安装类型的其他要求。 下载Pantheon二进制安装文件https://bintray.com/consensys/pegasys-repo/pantheon/_latestVersion#files 你可以用wget做到这一点 $ sudo apt install wget $ cd~/bin / $ wgethttps://bintray.com/consensys/pegasys-repo/ Download_file?file_path=pantheon-1.1.4.tar.gz -O pantheon-1.1.4.tar.gz $ wgethttps://bintray.com/consensys/pegasys-repo/ Download_file \?file_path \=pantheon-1.1.4.tar.gz -O pantheon-1.1.4.tar.gz $ HOME/bin /和$ HOME/.local/{bin,opt,usr}是单个用户计算机上本地用户二进制文件的推荐安装文件夹。其他选项可用,例如/opt/local /或/usr/local/bin /,具体取决于您的本地设置和首选项。阅读此Stack Exchange线程以获取更多详细信息。 2.解压缩压缩文件: $ tar -xzf pantheon-1.1.4.tar.gz $ cd pantheon-1.1.4 将1.1.4替换为您下载的版本。 确认下载没有损坏并检查版本。输出应返回到Pantheon和JDK版本。 $ bin/pantheon --version 万神殿/V1.1.4/Linux的x86_64的/oracle_openjdk的Java-11 从源代码构建 有两种选择:在本地或在VM上安装和运行。 本指南重点介绍本地解决方案。 1,克隆万神殿代码库 $ cd~/bin / $ git clone --recursivehttps://github.com/PegaSysEng/pantheon.git 2,建造万神殿 $ cd pantheon / $ ./gradlew build -x test 3.选择分发版本并检查版本。 $ cd build/distributions / $ tar -xzf pantheon-1.1.4.tar.gz $ cd pantheon-1.1.4 / $ bin/pantheon --version $ bin/pantheon --help 组态 万神殿无需任何额外配置即可运行。由--network命令行标志设置的每种不同网络类型(包括主网络)将自动加载相应的默认配置。 如果需要更改设置,可以在节点或网络级别配置这些选项。网络级别设置在genesis文件中定义,并由连接到该特定网络的每个节点加载。节点级别设置在节点配置文件中或通过命令行标志进行修改。 启动万神殿 完成上述步骤后,您可以继续使用常规的“Start Pantheon”指南进行此分发。 为了快速预览,这可能是与docker一起运行的开发网络节点上的HTTP请求。 $ docker run -p 8545: 8545 --mount type=bind,source=/tmp/pantheon/dev, 目标=/var/lib/pantheon pegasyseng/pantheon:最新--miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins='all'--rpc-http-enabled --network=dev 这是您构建调用eth_chainId方法的请求的方法。 String payload='{'jsonrpc':'2.0','method':'eth_chainId','params': [], 'id': 1}'; 字符串requestUrl='http://localhost: 8545'; sendRequest(requestUrl,payload); 方法实施: Public static String sendRequest(String requestUrl,String payload){ 试试{ URL url=新URL(requestUrl); HttpURLConnection connection=(HttpURLConnection)url.openConnection(); connection.setDoInput(真); connection.setDoOutput(真); connection.setRequestMethod( 'GET'); connection.setRequestProperty('Content-Type','application/json; charset=UTF-8'); OutputStreamWriter outputWriter=new OutputStreamWriter(connection.getOutputStream(),'UTF-8'); outputWriter.write(有效载荷); outputWriter.close(); BufferedReader buffer=new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer jsonString=new StringBuffer(); 字符串行; while((line=buffer.readLine())!=null){ jsonString.append(线); } Buffer.close(); Connection.disconnect(); 返回jsonString.toString(); } catch(例外e){ 抛出新的RuntimeException(e.getMessage()); } } 请求应返回以下结果: 'jsonrpc':'2.0', 'id': 1, '结果': { 'startingBlock':'0x0', 'currentBlock':'0x2d0', 'highestBlock':'0x66c0' }
微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发