无法连接到远程Geth,connect: permission denied.

news/2024/7/7 14:35:41 标签: 数据库, 区块链, php

无法连接到远程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/

另外推荐几个很受欢迎全网稀缺的互动教程:

  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。
  • web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。

http://www.niftyadmin.cn/n/929682.html

相关文章

【CodeChef】QTREE- Queries on tree again!

题解 给你一棵基环树&#xff0c;环长为奇数&#xff08;两点间最短路径只有一条&#xff09; 维护两点间路径最大子段和&#xff0c;支持把一条路径上的值取反 显然只要断开一条边维护树上的值&#xff0c;然后对于那条边分类讨论就好了 维护树上的值可以通过树链剖分&#xf…

四、WordCount案例

下载Eclipse 我是在windows下载的&#xff0c;然后从物理机上将下载的文件传入到虚拟机中。使用的是FTP服务。 1、安装Eclipse 1 解压 将下载的文件放入到虚拟机中普通用户的~/目录下&#xff0c;然后解压&#xff1a;tar -xzvf ... 2 打开eclipse 1.进入到解压后的目录下…

[摘抄]从 GitHub 身上学到的 3 个创业经验

1、找一个大问题去解决 让 Git 更容易使用是 GitHub 的目标&#xff0c;但它从来不是 GitHub 的最终目标。GitHub 的真正目标是让协作和编写软件变得更容易。世界上每一个软件开发者都在努力解决 GitHub 试图解决的问题。 这创造了一个巨大的潜在市场。 看看你目前开发的产品&a…

mpvue微信小程序开发随笔

mpvue上手很快&#xff0c;学习成本低&#xff0c;目前是开源的&#xff0c;适合技术实力不是很强的公司采用。 spring boot 做后台&#xff0c;开发效率杠杠的。建议会java的开发尽量使用spring boot 开发&#xff0c;省事。 最近用mpvue开发小程序&#xff0c;期间遇到了许多…

从计算机科学与技术专业的学习到自我教育

当前互联网上的优质资源已经是学不完的了&#xff0c;此外B站是没有围墙的大学。对于想学习计算机科学与技术的同学&#xff0c;或者已经是本专业&#xff0c;但是对之后的学习感到迷茫的同学&#xff0c;这里是一份来自老学长的个人发展指南。 当我上完大一上半年后&#xff…

Radial Basis Function Network

RBF Network 前面的一篇SVM中&#xff0c;最后的分割函数&#xff1a; 使用高斯核函数方式把数据维度扩展到无限维度进而得到一条粗壮的分界线。仔细看一下这个分割函数&#xff0c;其实就是一些Gaussian函数的线性组合&#xff0c;y就是增长的方向。Gaussian函数还有另外一个叫…

深入Java网络编程与NIO(二)

Java IO流总结 Java IO类图 按照操作方式分类&#xff1a;Java IO按照操作单元分&#xff0c;可以分为字节流InputStream、OutputStream和字符流Reader、Writer 字节流和字符流的区别: 字节流在JDK1.0中就被引进了&#xff0c;用于操作包含ASCII字符的文件。JAVA也支持其他的字…

安装Zookeeper-3.5.8

下载zookeeper-3.5.8。选用apache-zookeeper-3.5.8-bin.tar.gz。 在物理机下载完之后&#xff0c;通过ftp服务&#xff0c;将压缩包发送至虚拟机。我习惯放在~/目录下&#xff0c;然后就地解压&#xff0c;这样不会涉及到权限的问题。 一、配置Zookeeper 1、查看配置文件夹&a…