元宇宙是多种技术的集成。
一是人机交互技术。这是元宇宙最核心的关键技术之一,主要包括VR虚拟现实技术、AR增强现实技术、MR混合现实技术、全息影像技术、脑机交互技术和体感技术,为元宇宙用户提供了虚拟沉浸现实的体验阶梯,不断深化感知交互。沉浸式交互设备为玩家进入元宇宙提供了真实、持久且顺畅的交互体验,是真实世界与元宇宙的桥梁,而沉浸感的实现需要依托于一个终端设备接口来实现。具备3D显示、大视角高分辨率的AR/VR/MR有望成为元宇宙世界的重要接入方式。
二是区块链和NFT(数字凭证)技术。区块链技术和NFT(数字凭证)技术是元宇宙经济体系的重要支撑。区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。基于以上特征,区块链应用于实现点对点的金融交易、数字版权确认、提升供应链管理效率等方面。区块链将会扮演虚拟世界和现实世界的桥梁,提供去中心化的清结算平台和价值传递机制。
合约部署流程
一般来说,部署智能合约的步骤为1:
启动一个以太坊节点(例如geth或者testrpc)。
使用solc编译智能合约。=>获得二进制代码。
将编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。)=>获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。
用web3.js提供的JavaScript API来调用合约。
打开测试网络
输入以下命令:
geth--datadir"~/ethdev"--dev console 2>>geth.log
1
显示如下:
zcc ubuntu:~$geth--datadir"~/ethdev"--dev console 2>>geth.log
Welcome to the Geth JavaScript console!
instance:Geth/v1.4.18-stable/linux/go1.6.2
coinbase:0xb005804a49e73acb17d1e7645dfd0a33dde6eb0e
at block:217(Tue,01 Nov 2016 05:21:38 PDT)
datadir:/home/zcc/ethdev
modules:admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0
>
输入以下命令检查:
>eth.getCompilers()
["Solidity"]
如果返回值为空数组,那么输入以下命令安装:
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
如果输入第一条命令的时候返回错误,请尝试重启系统。
编写智能合约
我们编写一个求解与7相乘结果的函数,即输入一个值a,返回a*7的值。
>source="contract test{function multiply(uint a)returns(uint d){return a*7;}}"
"contract test{function multiply(uint a)returns(uint d){return a*7;}}"
编译智能合约
>contract=eth.compile.solidity(source).test
{
code:"0x606060405260388060106000396000f3606060405260e060020a6000350463c6888fa18114601c575b6002565b3460025760076004350260408051918252519081900360200190f3",
info:{
abiDefinition:[{
constant:false,
inputs:[...],
name:"multiply",
outputs:[...],
payable:false,
type:"function"
}],
compilerOptions:"--bin--abi--userdoc--devdoc--add-std--optimize-o/tmp/solc359648392",
compilerVersion:"0.4.3",
developerDoc:{
methods:{}
},
language:"Solidity",
languageVersion:"0.4.3",
source:"contract test{function multiply(uint a)returns(uint d){return a*7;}}",
userDoc:{
methods:{}
}
}
}