解密区块链:从基础概念到技术实现的进阶攻略(6)
时间:2023-09-11 12:08 来源:网络整理 作者:墨客科技 点击:次
初始区块是区块链的起始:第一个区块,区块0,唯一没有指向前面区块的一个区块。除非与其他节点具有相同的初始区块,协议确保了这些节点不会和该区块链一致。这样就可以创建任意的私有测试网络区块链。
2. 启动geth:
下面介绍上述命令中的主要参数: 1. --nodiscover:使用这个命令可以确保你的节点不会被非手动添加你的人发现。否则,你的节点可能被陌生人的区块链无意添加,如果他和你有相同的初始文件和网络ID。 2. --rpc:可以激活你节点上的RPC接口。它在geth中通常被默认激活。 3. --rpcapi:这个命令可以决定允许什么API通过RPC进入。在默认情况下,geth可以在RPC激活web3界面。 4. --rpcport:改变RPC上的开放端口。 5. --rpccorsdomain “*”:可以指示什么URL能连接到你的节点来执行RPC定制端任务。 6. --datadir “test/chain”:私有链数据所储存在的数据目录 7. --identity:为节点设置一个身份,使之更容易在端点列表中被辨认出来。 8. --solc:制定solc编译器 •智能合约 编写智能合约的高级语言有:solidity、serpent、LLL、Mutan。 ▷Solidity类似于Java,也是目前最流行的。 ▷Serpent类似于Python。 ▷LLL是类似于汇编的底层语言。 ▷Mutan是C-like的编程语言,不过已经被废弃了。 我们以multiply为例开始第一个Solidity的智能合约。 第一步:创建一个EOA用户并设置密码
第二步:查看新用户的余额,并且开始挖矿
第三步:新建一个命令窗口,并连接到正在挖矿的窗口
第四步:确认用户余额有所增加
第五步:编译 合约代码如下: contract test { function multiply(uint a) returns(uint d) { return a * 7; } }
首先将合约test赋值变量source,然后使用solidity编译器进行编译,将返回结果赋值给contract。 下面简要描述一下contract的字段: ▷code: 编译的以太坊虚拟机字节代码 ▷info: 从编译器输出的额外元数据 ▷source:源代码 ▷language: 合约语言(Solidity、Serpent、LLL) ▷languageVersion:合约语言版本 ▷compilerVersion:编译器版本号 ▷abiDefinition:应用的二进制接口定义 第六步:部署合约 (责任编辑:admin) |






