无法连接到远程Geth,connect: permission denied.
无法连接到远程Geth,connect: permission denied.
我在安装了Geth节点的ubuntu服务器X上创建了一个shell脚本,在测试链中插入智能合约数据。此外,我通过使用Shell脚本命令在同一服务器X上创建一个PHP文件insertscript.php。当我从命令提示符调用PHP脚本时,它会成功执行,并且数据被插入到区块链中。但是当我用CURL调用另一个服务器的PHP脚本或在浏览器中打开它时,我会看到错误:
Fatal: Unable to attach to remote geth: dial unix ///home/ubuntu/.ethereum/testnet/geth.ipc: connect: permission denied
我的shell脚本如下:
#!/bin/sh ATTACHPARAMETER="ipc:///home/ubuntu/.ethereum/testnet/geth.ipc" INCIDENTUUID=${1:-"photo-55697b7f4a550511448499999999"} USERUUID=${2:-"null"} TIMESTAMP=$3 STATUS=$4 echo $INCIDENTUUID echo $USERUUID echo $TIMESTAMP echo $STATUS geth attach $ATTACHPARAMETER << EOF var abi = [abi definition]; var address = "addressofContract"; var mycontract = web3.eth.contract(abi).at(address); eth.defaultAddress = eth.accounts[0]; personal.unlockAccount(eth.accounts[0],'test'); mycontract.createIncident('$INCIDENTUUID','$USERUUID',$TIMESTAMP,$STATUS,{from:eth.accounts[0],gas:1400000}); console.log("Inserted"); EOF
问题解答
这是因为你的Geth二进制文件在一个用户标识下运行,但是WebServer运行在另一个用户标识下。
你必须让geth.ipc
文件可以读写到你的Web服务器上,无论是通过组访问还是在两个进程(WebServer和Geth)上使用相同的user_id。
此外,请注意,不能通过2个计算机之间的IPC(进程间通信)共享Geth访问,IPC仅在单个计算机内工作,因为它是数据共享的内核级实现。
原文《以太坊常见问题和错误》中的:
http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/21/
另外推荐几个很受欢迎全网稀缺的互动教程:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
怎样通过java用web3j查询以太坊交易信息?
刚开始使用web3j,我有一些基本的麻烦。 我已经可以成功如何获得一个EthBlock,并检索里面的所有信息。我想看看这个块中的交易列表,我该怎么做? 我可以调用: List<TransactionResult> transactions = ethBlock.getBlock().getTransactions(); 我应该能够浏览这个列表并获得有关每笔交易的信息。但是,我所能做到的似乎都是交易处理结果,把它转换成非常无效的交易处理。我想要一个可以从中提取大量信息的交易对象。 如何获取真实的交易数据? 另一个注意事项:有什么相关的文档推荐?web3j JavaDoc? 问题的解答 你的调用并没错,只是混淆了一些概念。看下该如何使用泛型。比如下面的示例将在最新的块中输出每个交易的发送方: List<EthBlock.TransactionResult> txs = web3j.ethGetBlockByNumber(DefaultBlockParameterName.LATEST, true).send().getBlock().getTransactions(...
- 下一篇
RDS SQL Server死锁(Deadlock)系列之一使用DBCC捕获死锁
问题引入 在日常运维阿里云RDS SQL Server产品过程中,经常会被客户问道:“应用程序被死锁报错啦?影响很大,到底是哪个进程导致了死锁发生的啊?怎么解决啊?怎么办呀?”。从客户一连串的问题中,我们深刻体会到了死锁问题的紧迫性和影响之大。授人予鱼而不如授人予渔,RDS SQL Server死锁系列文章就是为了帮助客人彻底解决死锁问题为初衷而诞生的。本篇文章是系列文章的开篇,主要是讨论如何使用DBCC来捕获死锁信息,内容包括: DBCC捕获死锁 死锁测试 死锁分析 解决方法 DBCC捕获死锁 DBCC捕获死锁是利用了SQL Server死锁自动监测机制(默认每5秒运行一次)的返回信息,来将死锁信息记录到数据库日志记录中,我们可以事后从错误日中来查看这些有用的死锁信息,包括: 死锁的牺牲进程 死锁发生时的进程信息 死锁发生时争抢的资源 其实,DBCC捕获死锁信息的方法本身非常简单,只需要使用DBCC命令打开两个跟踪标记(1222和1204)即可。方法如下: USE master GO DBCC TRACEON(1222,-1) GO --also write like ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)