手把手部署区块链智能合约及python的web3接口调用

这篇具有很好参考价值的文章主要介绍了手把手部署区块链智能合约及python的web3接口调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

手把手部署区块链智能合约及python的web3接口调用

说句实话,在做区块链、智能合约、搭私链、pythonWeb3接口调用这些东西的时候,心里崩溃了不止四五十回,如果可以选别的方向,博主劝你赶紧换,人生已经很不容易了,别给自己找罪受。。。。。
创世块是什么请自行搜索,网络上很多示例的创世块博主都试过,在实际使用时会有各种各样的问题,如挖矿难度过大,格式不标准等等,博主贴上自己用的创世块代码,可以避免不必要的问题。

{
   
  "config": {
   
    "chainId": 3838438,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {
   }
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3a",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b888",
  "difficulty": "0x2fffff",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

安装好geth客户端,然后在geth.exe同级目录下按shift+鼠标右键出现如图所示菜单,选择在此处打开Powershell窗口web3.py 部署合约,区块链,智能合约,web3,python
在控制台输入命令操控Geth。
至于各种命令要熟练使用,学习时可以参考这篇博文——命令行博文链接
本人在搭私链和部署智能合约的时候用到的命令如下,先列出来一下

eth.sendTransaction({
   from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(1, "ether")})
personal.unlockAccount(eth.accounts[0])
geth --datadir data0 init genesis.json
geth --datadir data0 --networkid 3838438999 --nodiscover --port 30306 console
eth.accounts
personal.newAccount()
personal.unlockAccount(eth.accounts[0])
admin.startRPC("127.0.0.1", 8585)
eth.blockNumber
admin.nodeInfo

如果要加进别的设备,那就要用其他命令来连接了,在部署智能合约时,你可以先部署在最先搭私链的这个节点上,部署成功后再想办法把别的设备连进来。搭私链步骤看这篇博客——搭私链
我的ABI文件如下文章来源地址https://www.toymoban.com/news/detail-764292.html

[
	{
   
		"inputs": [
			{
   
				"internalType": "string",
				"name": "",
				"type": "string"
			}
		],
		"name": "IPFSAddrMatch",
		"outputs": [
			{
   
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"internalType": "string",
				"name": "_IPFS",
				"type": "string"
			},
			{
   
				"internalType": "uint256",
				"name": "_number",
				"type": "uint256"
			}
		],
		"name": "OverSubmit",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"internalType": "uint256",
				"name": "_layer",
				"type": "uint256"
			},
			{
   
				"internalType": "bool",
				"name": "_isVerifier",
				"type": "bool"
			},
			{
   
				"internalType": "uint256",
				"name": "_number",
				"type": "uint256"
			}
		],
		"name": "Regist",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"internalType": "uint256",
				"name": "_number",
				"type": "uint256"
			}
		],
		"name": "ViewFed",
		"outputs": [
			{
   
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
   
		"inputs": [],
		"name": "ViewLayerIPFS",
		"outputs": [
			{
   
				"internalType": "string[]",
				"name": "",
				"type": "string[]"
			},
			{
   
				"internalType": "string[]",
				"name": "",
				"type": "string[]"
			},
			{
   
				"internalType": "string[]",
				"name": "",
				"type": "string[]"
			},
			{
   
				"internalType": "string[3]",
				"name": "",
				"type": "string[3]"
			},
			{
   
				"internalType": "uint256[3]",
				"name": "",
				"type": "uint256[3]"
			},
			{
   
				"internalType": "uint256[3]",
				"name": "",
				"type": "uint256[3]"
			},
			{
   
				"internalType": "uint256[3]",
				"name": "",
				"type": "uint256[3]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"internalType": "uint256",
				"name": "_number",
				"type": "uint256"
			}
		],
		"name": "ViewNode",
		"outputs": [
			{
   
				"components": [
					{
   
						"internalType": "uint256",
						"name": "BianHao",
						"type": "uint256"
					},
					{
   
						"internalType": "uint256",
						"name": "layer",
						"type": "uint256"
					},
					{
   
						"internalType": "uint256",
						"name": "lazy",
						"type": "uint256"
					},
					{
   
						"internalType": "bool",
						"name": "valid",
						"type": "bool"
					},
					{
   
						"internalType": "bool",
						"name": "isVerifier",
						"type": "bool"
					}
				],
				"internalType": "struct newBHZ.Node",
				"name": "",
				"type": "tuple"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"internalType": "string",
				"name": "_IPFS",
				"type": "string"
			}
		],
		"name": "addLazy",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
   
		"inputs": [
			{
   
				"in

到了这里,关于手把手部署区块链智能合约及python的web3接口调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你本地CPU环境部署清华大模型ChatGLM-6B,利用量化模型,本地即可开始智能聊天,达到ChatGPT的80%

    大家好,我是微学AI,今天教你们本地CPU环境部署清华大ChatGLM-6B模型,利用量化模型,每个人都能跑动大模型。ChatGLM-6B是一款出色的中英双语对话模型,拥有超过62亿个参数,可高效地处理日常对话场景。与GLM-130B模型相比,ChatGLM-6B在对话场景处理能力方面表现更加卓越。此

    2024年02月01日
    浏览(49)
  • 【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x进行ONNX和TensorRT的部署(Python篇)

    2023.9.8更新 C++ SDK篇已经发布,点击这里传送到文章 MMDeploy 提供了一系列工具,帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。 MMDeploy 定义的模型部署流程,这里直接使用了官方文档的内容,如下图所示:  1)模型转换(Model Converter) 模型转换的主要功能是

    2024年01月16日
    浏览(50)
  • vue项目打包部署-手把手教程

    1.购买服务器 可选阿里云/腾讯云/华为云 等等… 购买时选择镜像,我们这里以CentOS为例 2.配置服务器 2.1 安装FinalShell ​ 需要本地使用一些软件来操作服务器,例如:FinalShell / Xshell … ​ 我这里使用的是FinalShell,安装好以后,打开软件与建立链接,就可以用命令行来操作服务器了 最

    2024年02月22日
    浏览(58)
  • [手把手系列之]Docker 部署 vue 项目

    Docker 作为轻量级虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。本文使用Docker来部署一个vue的前端应用,并尽可能详尽的介绍了实现思路和具体步骤,以方便有类似需要的同学参考。 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应

    2024年03月24日
    浏览(64)
  • 智能车调参经验(超级详细!!!手把手教)【一】

            调参作为智能车比赛中最为耗时和痛苦的事情,在网上浏览了许多人的调参经验的博客却发现大家分享的内容对新手并不太友好,所以作为一枚小白打算记录一下此次参加智能车比赛中调参遇到的问题以及经验所得,不仅希望能帮助到更多人,让他们少走弯路,节

    2024年02月16日
    浏览(44)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(52)
  • zookeeper单节点部署,手把手从零到一

    kafka戳这里:kafka单节点部署,手把手从零到一 事前准备: 1、一台Linux服务器或者是一台虚拟机 2、准备好JDK环境 3、安装好wget(当然也可以不用这个,只是用于下载安装包的一个工具,所以能下载好包就是没问题的) 4、需要了解vim的一些基础操作,不懂得可自行百度 1.1、

    2023年04月15日
    浏览(54)
  • Docker容器部署前端Vue服务——手把手教学

    需要工具: Xftp Xshell   首先对前端项目进行打包:npm run build   打包完成 ​ 在项目中生成dist文件: 通过Xshell在/home目录下创建项目文件夹 通过Xftp将打包的dist文件上传到服务器的项目文件夹下; 利用Xshell在拉取nginx镜像 在项目文件夹下编写nginx config配置文件 default.conf内容

    2024年02月07日
    浏览(62)
  • 使用devstack安装部署OpenStack(据详细手把手教学)

            (1) 操作系统 :Linux。OpenStack官网推荐使用 Ubuntu-20.04 LTS进行安装OpenStack,所以本教程也以此版本为例。 (不推荐使用其他版本,出现错误较多,容易安装失败)         (2) 虚拟机软件 :VirtualBox或者Vmware。虚拟机的内存最好分配 8G 以上(至少4G),若达

    2024年02月02日
    浏览(89)
  • 手把手教你将项目部署到服务器!

    一、导入centos7虚拟机: 打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径: 点击导入: 选择“不再显示此消息”,点击“重试”按钮: 点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动 按Ctrl+Alt键可以切换到windows下。 启动成功后,输入

    2023年04月20日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包