网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

解密区块链:从基础概念到技术实现的进阶攻略(6)

  初始区块是区块链的起始:第一个区块,区块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)