1. 定义

没有通常意义上的智能合约。所有业务逻辑都嵌入在网络中。换句话说,为了创建智能合约,需要修改石墨烯源代码。石墨烯区块链实现使我们能够轻松地向网络添加自定义操作。

2.

Graphene 中的一个动作或一个操作只是源代码中的一个函数,有几个额外的要求:

2.1 操作参数

必须是一个结构体,以便交易参数可以存储在区块链上。

2.2 验证检查

验证操作有一个validate()函数来执行参数的完整性检查。此函数检查参数是否格式正确、有意义并位于预定义范围内。eg. 可能会检查用户是否没有将代币转移给自己,因为这是一个毫无意义的操作

2.3 评估器

操作必须有一个评估器,评估者是操作背后的真正大脑。它包含两个功能:

  • do_evaluate(),它检查函数验证等参数。此函数执行更高级别的验证,eg. 用户是否有足够的令牌进行传输?和合同到期了吗?这些不仅仅是简单的输入确认;它们是业务逻辑的实际部分。

  • do_apply(),它应用必要的更改。eg. 它可以更新用户的余额,更改存储在区块链上的数据等。

石墨烯区块链(5)智能合约相关推荐

  1. 详解区块链,智能合约,去中心化应用

    文章目录 一.区块链是什么? 二.智能合约 三.去中心化应用 一.区块链是什么? 区块链本质上是一个去中心化的分布式账本数据库,目的是解决交易信任问题.广义来看,区块链技术是利用块链式数据结构验证与存 ...

  2. 什么是智能合约,区块链和智能合约的关系及原理

    智能合约(smart contract)这个术语至少可以追溯到 1995 年,是由多产的跨领域法 律学者尼克·萨博(Nick Szabo)提出来的.他的定义是"一个智能合约是一套以数字形式 ...

  3. 论文笔记:使用区块链和智能合约打击深度假冒视频

    摘要 随着人工智能(AI)和深度学习技术的兴起,近年来虚假数字内容激增.假镜头.假图像.假音频和假视频(被称为深度假冒,Deepfake)可能是一种危险的现象,有可能改变真相,并通过伪造事实来侵蚀信任 ...

  4. [区块链安全-Damn-Vulnerable-DeFi]区块链DeFi智能合约安全实战-连载中

    [区块链安全-Damn-Vulnerable-DeFi]区块链DeFi智能合约安全实战-连载中 前言 环境准备 1. unstoppable 任务分析 发起攻击 总结 2. Naive receive ...

  5. 区块链和智能合约的关系

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 尽管比特币(Bitcoin)和以太坊(Ethereum)是经常被一起提及的两个词,但实际上,比特币与以太坊有着很大的区别 ...

  6. 区块链上智能合约的讲解

    智能合约 智能合约是在区块链上运行的应用或者程序.通常情况下,智能合约是一组具有特定规则的数字化协议,且这些协议能够强制化执行.这些规则由计算机代码预先定义,所有节点会复制和执行这些计算机源码. 智能 ...

  7. 每日区块链:智能合约是否是区块链的最佳创新?

    1.盖茨基金会将使用Ripple跨账本技术推动移动支付 导读:盖茨基金会正在积极探索新技术来开展一些项目帮助没有银行账户的穷人.目前,它宣布使用Ripple的跨账本技术开发了一种开源软件,能够为金融机 ...

  8. 区块链学习-智能合约与ICO

    什么是"以太坊"? 以太坊是由程序员Vitalik Buterin创立的,是比特币交易的替代品.比特币被严格用作加密电子货币,或被视作一种转移货币价值的手段.然而,相同的区块链技术 ...

  9. 众说区块链:智能合约在建材链上的落地实践

    上期<众说区块链>讨论的主题是"数字货币交易所",围绕这个的相关主题,大家对这方面的相关话题展开了进一步的谈论. 本期<众说区块链>讨论的主题是" ...

  10. 区块链开发(十)区块链技术-智能合约Solidity编程语言

    [文档翻译系列]Solidity语言 Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上. Solidity与其它语言相关的特点? 它的语法接近于Javascript, ...

最新文章

  1. DOM+XPath提取规则注记!
  2. 《GPU高性能编程CUDA实战》中代码整理
  3. centos7上开启单用户模式
  4. 最好的电脑系统_热键被占用怎么办?电脑系统 程序 游戏热键被占用冲突如何解决?...
  5. [react] 怎么在JSX里使用自定义属性?
  6. 提高生产力,最全 MyBatisPlus 讲解!
  7. cookie session token 之间的区别
  8. PythonAM3_统计量分析
  9. C语言 简单选择排序算法
  10. 【Go语言入门教程】Go语言基本语法
  11. can总线程序讲解_汽车can总线工作原理及测量方法详解
  12. [35期] 没有硝烟的战争
  13. 食品级L-天门冬氨酸市场现状及未来发展趋势
  14. deep-daze给你一个五彩斑斓的黑
  15. 地表最强的GPT-3,是在推理,还是胡言乱语?
  16. 关于Android模块化我有一些话不知当讲不当讲
  17. 广告加载失败,请稍后重试 ks: 310004,gdt:5006
  18. [XCTF-pwn] 31_ciscn-2018-Quals_house_of_grey
  19. Mybatis-Plus动态表名插件实现数据库分表查询
  20. 常见测试用例设计之键盘

热门文章

  1. 剑指offer:扑克牌的顺子问题
  2. linux小波识别算法,人脸识别相关技术之小波变换
  3. oracle apply handler,做什么BaseHandler.apply_response_修复在django吗?
  4. cvid matlab,WAKE-WIN10-SOFT-软件-Matlab配置及工具箱
  5. cmd写java程序_用cmd写一个最简单的Java程序
  6. css字体的字型,CSS的字体、字型控制_css
  7. 数据中心继续蓬勃发展的5个原因
  8. 统计123出现次数_如何使用 count 统计词条出现次数?
  9. java类加载器_JAVA类加载器
  10. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略