编辑: 颜大大i2 | 2016-07-30 |
2 3 ] , 其优点是便于智能合约彼此 的交互, 不需要担心共识协议等问题.以太坊使用 工作量证明( p r o o fo fw o r k, P OW) 共识算法生成区 块[
2 4] , 创建区块的过程称为挖矿, 矿工是挖区块的 节点.以太币( E t h e r ) 是以太坊的原生数字货币, 部 署智能合约及发起交易均需支付一定数量的以太 币, 单位为e t h.G a s是衡量区块链运算消耗的计量 单位, G a s价格为一单位 G a s所需的以太币数量. 为防止智能合约陷入循环攻击, 以太坊为每笔交易 设置了一定的 G a s上限, 约束每次交易的 G a s消耗 必须低于其上限. 以太坊存在外部账户与合约账户两种类型的账 户[
2 5] , 两种账户皆可存储以太币, 外部账户由私钥 控制, 可发起交易, 无与之相关联的智能合约;
合约 账户由智能合约控制, 不能发起交易, 有与之相关联 的智能合约.该平台使用合约账户进行资金支付的 管理, 用户从外部账户预存入合约账户一定数量的 以太币作为进行能源交易的代币, 智能合约为用户
1 9 韩冬, 等 基于区块链技术的智能配售电交易平台架构设计 创建钱包记录代币的数量, 交易过程中智能合约结 算出交易金额后即对交易双方的钱包进行转账.用 户钱包中的一部分代币作为保证金, 以保证用户基 本的能源交易费用.
2 ) 参与者接入区块链的类型.公有链、 联盟链 和私有链在分布式程度、 运行效率、 安全性等方面存 在一定差异[
2 6 ] .本文采用权限内部可控、 处理速度 较快、 成本较低、 安全性较高的私有链来搭建区块链 技术支撑层[
2 7 ] , 私有链中的以太币与实际货币的汇 率可由所有节点共同协商决定.
3 ) 智能合约形成机制.本文智能合约的形成机 制可表述为首先各用户节点、 矿工节点、 发/用电设 备节点使用相同的创世区块文件创建一条私有链, 相互之间连接节点形成局域信息通信网络, 通过矿 工挖矿, 持续生成区块[
2 8] .然后使用 S o l i d i t y语言 将配售电交易机制智能合约化, 最后使用 R e m i x在 线编译器将智能合约编译为字节 码, 通过 G e t h 客 户端部署到私有链上[
2 9 ] . 2.
2 交易平台硬件设备与软件环境 交易平台硬件设备由能源网络层中的实际发/ 用电设备, 交易信息交互层中的计算机, 量测信息交 互层中的智能电表与计算机构成.计算 机均使用 L i n u x 系统, 负责建立私有链、 运行Web前端、 N o d e . j s后端、 P y t h o n 后端与 G e t h 客户端 等软 件 环境.三相四线费控式智能电表负责测量电量、 功 率等参数. W e b 前端通过jQuery框架将信息传输到Node.js后端, N o d e . j s后端进一步依据J a v a S c r i p t 对象简谱远程过程调用( J a v a S c r i p to b j e c tn o t a t i o n r e m o t ep r o c e d u r ec a l l , J S ON - R P C) 协议通过应用程序编程接口( a p p l i c a t i o np r o g r a mm i n gi n t e r f a c e , A P I ) 调用智能合约中的函数[
3 0 -
3 1] .P y t h o n后端会 定时通过 R S -
4 8 5转通用串行总线( U S B) 与智能电 表进行串口通信, 然后依据 D L / T6
4 5―2
0 0 7协议 将读取到的1 6进制报文转码转为1 0进制电量及智 能电表编号( 智能电表出厂时被赋予的唯一阿拉伯 数字编号) 并调用智能合约中的函数[
3 2] .G e t h 是 以太坊 G oe t h e r e u m 项目的客户端, 使用 G o语言 开发, 通过 G e t h客户端的一些基本命令, 可以便捷 地创建以太坊私有链、 部署智能合约. 2.