geth安装与基本使用
安装准备:go,git
- 通过PPAs安装geth
- 创建自己的私有链
创建创世文件
创建一个genesis.json文件,官网配置文件如下:https://github.com/ethereum/go-ethereum,其中,chainId是私有链的id,注意不要和现有的主链(1)和测试链的id相同(2,3,42),例如:500,666等;alloc代表初始资产配置,在该区块链产生时,就预先赋予这些账户一定数额的wei,可以将metamask中的地址写入,分配以太币,注意单位是wei;difficulty 定义了每次挖矿时,最终确定nonce 的难度;nonce预定一个随机数,这是一个与PoW 机制有关的值;coinbase 每挖出一个区块,都会获得奖励,该值指定默认情况下把奖励给到哪个账户,实际上,我们每次挖矿开始之前,都会自己指定;gasLimit 规定该区块链中,gas 的上限。
初始化创建私有链
创建myChain文件夹,用来指定数据存储的位置,使用以下命令初始化私有链。
私有链启动
Networkid与配置文件中的id相同
info输出重定向
上面的命令启动私有链,时不时就会出现info消息,影响我们输入geth命令,因此我们将info输出重定向到一个log文件,使用使用下面命令启动。可以新开一个命令行终端输入以下命令查看日志:tail -f geth.log。
创建完成
可以使用exit和ctrl-d退出。
启动脚本创建
创建一个启动rungeth.sh命令脚本,之后运行脚本,私有链就启动了,其中指定了数据存储位置,私有链网络id,开放端口,rpc端口,rpc地址,rpc方法,允许HTTP通道解锁账户,info重定向等命令,请大家根本自身的实际情况进行修改,脚本具体内容如下。(相关的参数的涉及可能在后面给出原因)
赋予rungeth.sh脚本权限
运行脚本
启动命令参数说明
使用最新版本geth客户,当执行personal.unlockAccount()或在程序中调用personal_unlockAccount接口时,会出现:account unlock with HTTP access is forbidden异常。新版本geth,出于安全考虑,默认禁止了HTTP通道解锁账户。在启动命令中添加“--allow-insecure-unlock”参数进行打开操作。
- 安装metamask
MetaMask是一款在谷歌浏览器Chrome上使用的插件类型的以太坊钱包,该钱包不需要下载,只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便。
Chrome的安装
进入到Chrome的网上应用商店下载metamask
MetaMask使用
可以参考:https://zhuanlan.zhihu.com/p/112285438?from_voters_page=true
- Metamask连接自己的私有链(win10下的Ubuntu18.04虚拟机)
私有链启动时命令参数包含rpc和rpcaddr
其中rpcaddr "0.0.0.0",指定任何一个ip地址都可以访问,rpc默认端口是8545。
查看虚拟机IP地址
ifconfig查看虚拟机的ip地址,此处你的虚拟机要是桥接模式,不然不会有自己的ip。
metamask连接
在metamask上自定义rpc,网络名称可以随意取,URL地址为http://虚拟机ip:8545,,链ID为私有链id看,保存即可以连上虚拟机上的私有链。
MetaMask/外部账户导入到Geth私链(可以在初始化私有链的配置文件中就加上metamask账户地址)
-
- 获取MetaMask上账户的私钥:点击账户详情,导出私钥。
- 拿到私钥以后,在虚拟机中创建一个文本文件例如fk.txt放进去
- 输入geth account import 你的私钥文件路径
- 提示你输入密码,这个密码是在geth控制台使用的密码
- 发现生成的账户地址就是在MetaMask上的账户地址。
- 查看当前生成密钥文件位置:geth account list
- 找到对应账户后面的存储位置,把文件放到项目中的keystore文件夹中即可。(keystore文件夹的位置为geth启动命令是指定的数据存储位置参数,即datadir)
- 在geth控制台中输入eth.accounts查看
- 导入完成
完成metamask账户地址的添加到私有链中,稍后进行转账,即可看到账户余额。
- 基本命令
下面的命令均在geth控制台中输入,即输入启动私有链命令后。
- 参考文章
https://blog.csdn.net/weixin_43584346/article/details/114792707
https://zhuanlan.zhihu.com/p/112285438?from_voters_page=true
https://www.cnblogs.com/soowin/p/14328195.html
https://blog.csdn.net/wo541075754/article/details/98847308
https://blog.csdn.net/youlinhuanyan/article/details/99574782
https://blog.csdn.net/u014439239/article/details/79347389
https://blog.csdn.net/mingrizhixin/article/details/111407758
https://blog.csdn.net/weixin_43988498/article/details/108394012
https://www.jianshu.com/p/9fa31e4cdf4d
https://github.com/ethereum/go-ethereum
__EOF__

本文链接:https://www.cnblogs.com/shizhe99/p/15087068.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!