DAPP 智能合约链游开发源码案例丨 DAPP 智能合约链游系统开发(逻辑及方案)
元宇宙是上层建筑,Web3.0 是基础设施:Web3.0 和元宇宙均代表互联网的未来,Web3.0 代表的是技术发展方向,而元宇宙代表了未来应用场景和生活方式,两者相辅相成,呈现一体两面的关系。
Web3.0 技术与核心特征:Web3.0 是元宇宙的底座,技术包括区块链、人工智能、大数据等技术和用户共识社区(DAO)等,核心特征为用户隐私保护能力加强、去中心化组织形态、价值互联互通、“平行空间”成为现实
What is DApp 开发功能及详细 I35 模式 7O98 逻辑 O7I8
"DApp"stands for decentralized applications.Like traditional applications,decentralized applications also have front-end(client)and back-end(server).The user interface of DApp can be written in any language(like traditional applications),and its back end can be called.So,how is Dapps different from traditional applications?The back-end code of DApp runs on a distributed peer-to-peer network(i.e.blockchain).
使用 web3py 部署智能合约并调用
前提:启动本地 geth 节点,开启相关 rpc 服务,默认端口为 8545,本人是在虚拟机中配置了 geth 节点
使用 solc 或者 solcjs 编译智能合约生成 abi 和 bin,solc 指令为控制台输出,solcjs 会保存成文件。
solc--bin Voting.sol
solc--abi Voting.sol
安装包 web3py 开发案例源码:MrsFu123
pip install web3py
import json
from web3 import Web3
web3=Web3(Web3.HTTPProvider('http://ip:8545'))
print(web3.isConnected())
account=web3.eth.accounts[0]
#读取文件中的 abi 和 bin,也可以当场生成
with open('dataVoting_sol_Voting.abi','r')as f:
abi=json.load(f)
with open('dataVoting_sol_Voting.bin','r')as f:
code=f.read()
newContract=web3.eth.contract(bytecode=code,abi=abi)
#发起交易部署合约,
option={'from':account,'gas':1000000}
web3.geth.personal.unlock_account(account,'123')
tx_hash=newContract.constructor([b'dog',b'cat',b'bird']).transact(option)
#等待挖矿使得交易成功
tx_receipt=web3.eth.waitForTransactionReceipt(tx_hash)
print(tx_receipt.contractAddress)
合约部署成功后就可以调用了,如果需要改变数据需要使用 transac()发起交易,并等待挖矿确认,只是读取则使用 cal()即可
#调用合约,合约地址就是刚刚控制台打印的
address=web3.toChecksumAddress("0x6999C68d214E1d193534601759b7F1eC534597Bf")
c=web3.eth.contract(address,abi=abi)
print(c.functions.totalVotesFor(b'dog').call())
评论