首页 > 其他分享 >第六讲 weBASE IDE 的使用和智能合约的开发

第六讲 weBASE IDE 的使用和智能合约的开发

时间:2023-04-24 15:00:19浏览次数:42  
标签:驼峰 智能 首字母 第六 weBASE 投票 命名 IDE 合约

01 智能合约概述



智能合约产生价值的最基本前提是有一个强有力的底层介质用于储存,让其不可被物理破坏。
然而,智能合约的本体是一份代码,非常容易被慧改,如何为其提供强力的存储介质就成了问题。这正好是区块链
擅长解决的——通过比特币的实践,证明了区块链可以在分布式环境下让电子记录不可被慕改。
2013年,Vitalik Buterin提出了以太坊,其核心是通过世界状态对区块链数据进行更新和验证。以太坊与比特币最大的不同在于可通过智能合约执行复杂的逻辑操作。
在以太坊上,智能合约的语言是Solidity,它是图灵完备且较为上层的语言,极大地扩展了智能合约的能力范畴,降低了智能合约编写难度。


02 Solidity基础特性

合约构成

状态变量

构造函数

一个智能合约只能有一个构造函数

函数


第一个:uint-》输入
value
自定义:onlyAdmin
返回值:只需给定数据类型

事件


定义事件
构造事件

修饰符



代码在区块链上才能运行,限制在EVM中,

命名规范

合约命名:采用驼峰命名、首字母大写、且能表达对应的业务含义;
方法命名:采用驼峰命名、首字母小写、且能表达对应的业务含义;
事件命名:采用驼峰命名、首字母小写、且能表达对应的业务含义,以Event结尾;
合约变量:采用驼峰命名、以开头,首字母小写、且能表达对应的业务含义;
方法入参/事件参数/局部变量:采用驼峰命名、首字母小写、且能表达对应的业务含义;
方法出参:建议只写出参类型,无需命名,特殊情况例外;

注释

智能合约的注释同大部分编程语言,没有很严格的要求。
对于一些特殊字段、常量、数组中的每个变量及特定逻辑,需进行说明,方法及Event可以使用/comments/
特定字段及逻辑说明可采用//。

03 WeBASE IDE的使用

主要功能

  1. 首先是建立两个存储的结构体:
  • 1)Voter(用于存储投票人的相关信息)
  • 2)Proposal(用于存储候选人的相关信息)
  1. 建立主席的地址存储变量chairperson,和投票人的地址映射对:mapping(address=>Voter)public voters;
  2. 编写投票等相关功能的函数,如:
  • 主席给投票人(地址)授权函数giveRightToVote();
  • 投票人投票函数vote(); 投票人委托函数delegate();
  • 最后是获胜者输出函数winningProposal()与winnerName()函数。

进入we-deploy
cd fisco/webase-deploy
停止所有服务
python3 deploy.py stopAll
开启所有服务
python3 deploy.py startAll

04 智能合约开发实践

05 Q&A

标签:驼峰,智能,首字母,第六,weBASE,投票,命名,IDE,合约
From: https://www.cnblogs.com/yimumengke/p/17349238.html

相关文章

  • idea - 在Terminal 交叉编译golang 解决
    1. 背景在ideaTerminal栏执行gobuildxxx.go打包的是exe文件交叉编译配置SETCGO_ENABLE=0SETGOOS=linuxSETGOARCH=arm64gobuildxxx.go发现编译文件仍然是exe2.解决需要切换为cmd指令执行cmd然后在执行交叉编译即可 ......
  • 第六章 重新组织函数
    6.1提炼函数 一个过长的函数或者一段,需要注释才能理解用途的代码,将这段代码放入一个独立的函数。每个函数的粒度很小,复用的机会就会很大。高层函数可读性就很高,看起来就是再读一堆注释。函数都是细粒度,复写也会更容易。提炼出的函数,根据这个函数的意图来命名(以它做什么命名,......
  • idea--工作流activiti插件<->20230424
    idea2019集成activiti,ideaactiviti新建bpmn文件,解决ideaactiviti中文乱码 idea在线安装activiti插件1.File-->Settings2.点击Plugins,右侧界面点击Marketplace后在搜索框搜索actiBPM注:网络原因没有加载出来,实属抱歉.按钮请各位看官自行脑补 -_-! ......
  • 【开发工具】idea2023.1社区版设置优化,媲美旗舰版
    相信大家很多时候都是用旗舰版来开发,各种序列号破解包各种搞,但说不定哪天又失效了那天又爆泄漏隐私安全问题。随着idea的版本升级破解也不好搞了,所以我就直接用了社区版,经过一番折腾发现社区版一点不比旗舰版差,可能是我用到的功能比较少吧。一、配置全局1.1、配置软件配置1.2......
  • IDEA中JavaDocs路径是红色的
    转载链接:https://blog.csdn.net/Chia_Hung_Yeh/article/details/102936633ProjectSettings-->Libraries-->Sources、JavaDocs路径出现红色字体ClassesClasses中的jar,是程序在运行项目的时候使用的,因为这个是直接编译好的class文件,可以直接被虚拟机运行的。SourcesSource......
  • 错对队 团队博客 第六天
    今日工作:每个人继续深入各个成员的工作 佳岳:帮助实现学生登陆后的界面展示,以及实现不同角色数据的展示,也就是通过每个团队在数据库中唯一的编码来看自己团队的请求 艺凡:  瑞鹏:  出现的问题:佳岳:今天的其他课程比较多,没分出太多时间给团队任务,但还是尽量实现了数据......
  • 多校第六场 1011 hdu 5363Key Set(组合数学)
    题目链接:hdu5363题目大意:给出一个到n的自然数集合,问它有多少个子集,元素之和是偶数。题目分析:首先偶数不会导致集合的和的奇偶性发生变化;奇数会导致集合的和的奇偶性发生变化。我们设奇数m1个,偶数m2个。所以我们可以选取0~m1个偶数,但是只能选取偶数个奇数。那么偶数的方案数就是......
  • 【v4l2】Linux多媒体框架 - videobuf2详解
    框架分析框架可以分为两部分看:控制流+数据流,之前已经大概的描述了控制流,数据流部分就是videobuffer,V4l2buffer的管理是通过videobuf2来完成的,它充当于用户空间和驱动空间之间的中间层,并提供模块化的内存管理功能。上图大体包含了videobuf2的框架1.vb2_queue:核心的数据结构,......
  • iSlide - PPT 设计美化插件
    简介iSlide是一款基于PPT(PowerPoint)开发的插件工具,目前还支持Windows平台的WPSOffice。即使你不懂设计,也能利用iSlide内置的丰富资源库及功能,轻松高效地创建各类专业PPT演示文档。功能特性两大主流Office办公平台支持iSlide支持Windows系统上的MicrosoftOffi......
  • Idea日志中文乱码的解决办法
    背景:之前用的Idea的社区版,没有出现日志中文乱码的问题后来因为UI自动化的原因,安装了专业版,专业版出现了日志中文乱码的问题 使用了各种方法,在所有需要配置成UTF-8的地方都配置完成了依然无效对我来说无效或者不全面的方法见下列链接,应该是大家常能百度出来的方法IDEA控制......