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 智能合约)