Solidity 智能合约

基于搭建的FiSCO BCOS 进行后续开发
具体开发流程如下图:


截屏2021-01-25 下午7.06.27.png

目前的第4步,经过询问官方,只有JAVA的SDK最为全面,Python和go的对国密算法支持的还不够,建议大家用JAVA的SDK。
目前Solidity 在gas的消耗逻辑,在FISCO BCOS上是不存在的,联盟链不需要消耗这个。即便智能合约中有对应的方法和逻辑,部署是可以成功的,但是不会生效。

回到智能合约,要想开发智能合约,需要关注3个问题
1、智能合约的安全性
安全是智能合约以及区块链应用的基础和命脉,脱离了安全的区块链系统都将成为炮灰。

简单列举下智能合约安全问题的分类:

  1、程序错误:初始化方式错误,变量隐藏造成混用
  2、检查不足:权限和边界检查不足
  3、逻辑缺陷: 出块者可操纵、重入攻击
  4、恶意合约: 骗取tx.origin,RTLO字符攻击

针对以上的建议

  1、牢记链上数据是透明的,隐私数据需加密上链
  2、合理利用关键字设置状态变量和函数的可见范围
  3、函数调用需要校验账户权限及变量边界
  4、合约代码确保精炼和模块化
  5、使用安全工具鉴证智能合约安全

2、合约性能
性能是衡量区块链应用的可用性重要指标,直接决定的系统的负载能力和用户体验
比如一个查询的操作,如果不加View关键字,就是一个灾难。所有的查询都会全网广播、记录。
3、可扩展性
可扩展性是智能合约及区块链应用系统应对业务变更和升级的有效手段,可确保系统升级的实效和成本。

针对扩展性的建议

1、采用经典的三层架构,逻辑和数据分离
2、通用工具或模块提取
3、面向对象,单一职责模式
4、复用已成熟的库
5、适当预留空闲字段
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 这一节主要会介绍一些Solidity API,也就是一些特殊的变量及函数。 特殊的变量和函数(Special...
    唠嗑008阅读 1,375评论 0 3
  • 前言 FISCO BCOS使用了Solidity语言进行智能合约开发。在区块链的江湖中,一直有一种传言说Solid...
    dalaocu阅读 365评论 0 0
  • 平台介绍 FISCO BCOS是一个区块链底层平台,由金融区块链合作联盟(深圳)(以下简称:金链盟)开源工作组以金...
    Kindey_S阅读 17,239评论 1 2
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,552评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,606评论 0 11