不要存储不必要的数据

in HuaRen.News4 years ago

这听起来似乎很明显,但是非常值得一提。

编写智能合约时,你应该只存储交易验证所需的内容。

与合约逻辑无关的交易记录或详细说明之类的数据可能不需要保存在合约存储中。

考虑以下 PollContract 智能合约,该用户可以创建一个民意调查,当达到某个阈值时可以自动执行。

PollContract

如果经常调用 createPoll 函数,则可以考虑从 Poll 结构体中删除 memo,因为它不会直接影响合约的逻辑。而且触发的备忘录的事件已经包含了 memo,而它仅需要存储 memo 的哈希值(32 字节),就可以方便日后进行快速验证。开发者应仔细考虑 gas 成本与合约简便性之间的权衡。

此外, 在 Band Protocol 的 Solidity 优化教程中,我们介绍的各种数据结构实现,例如链接列表,可迭代映射,Merkle 树等,这些实现是专门为减少以太坊存储数据量而设计的。

本帖 steem 首发

不要存储不必要的数据

最近新帖

  1. DeFi 被低估了
  2. 字节跳动寻求以估值1800亿美元融资
  3. 秦朝统一后取消了分封制
  4. 姬昌求贤若渴
  5. 治理水患
  6. 发明巢居的人
  7. 戊戌变法
  8. 第一次鸦片战争
  9. 太祖高皇帝
  10. 努尔哈赤统一女真
  11. 一代清官海瑞
  12. 从和尚到元帅
  13. 元世祖大兴文治
  14. 岳飞精忠报国
  15. 庆历新政
  16. 石敬瑭卑躬屈膝做皇帝
  17. 永贞革新
  18. 贞观之治
  19. 陈后主骄奢亡国
  20. 能征善战的桓温
  21. 王濬楼船破吴
  22. 赤壁之战
  23. 蔡伦改进造纸术
  24. 霍光辅政
  25. 文景之治
  26. 楚汉争霸
  27. 焚书与坑儒
  28. 触说赵太后
  29. 合纵抗秦的苏秦
  30. 吴起杀妻求荣
  31. 晏子使楚
  32. 五张羊皮赎回的贤臣
  33. 周公辅成王
  34. 荒淫的夏桀
  35. 女娲传说
  36. 苟日新
  37. 取宜少
  38. 非言大
  39. 当自砺
  40. 勿佞巧
  41. 入虚室
  42. 纽必结
  43. 退恭立
  44. 昼夜侍
  45. 居有常
  46. 圣与贤
  47. 勿慕彼
  48. 理服人
  49. “逆鳞”之痛
  50. 有心非
  51. 注重自己与人交流的态度
  52. 对以名
  53. 拜恭敬
  54. 视勿移
  55. 兄弟睦
  56. 亲恶谨去
  57. 不如仁人
  58. 读毕还原
  59. 一日为师
  60. 涌泉相报
  61. 才大望大
  62. 好学近乎智
  63. 轻言勿传
  64. 执虚如盈
  65. 不要盲目跟风
  66. 长辈面前的坐立规矩
  67. 丧礼祭诚
  68. 怡色柔声
  69. 晨省昏定
  70. 圣贤可驯
  71. 知己知彼
  72. 有疑札记
  73. 俗众仁希
  74. 才大望大
  75. 忧道不忧贫
  76. 养成良好的卫生和生活习惯
  77. 兄弟和睦
  78. 子从父之令,可谓孝
  79. 至要莫如教子
  80. 北京因为新冠疫情全面取消新发地市场零售功能
  81. 黎智英交保50万元获准保释
  82. 无罪蒙冤的张玉环要求国家赔偿和追责为何不可?
  83. 特朗普封禁TikTok是国际化分工逆流
  84. 美国利用签证问题刁难驻美中国籍记者
  85. 特朗普帮助微软抢劫抖音海外版TikTok
  86. 特朗普为提升民调狂禁抖音海外版TikTok
  87. 美方至今拒绝给中国记者续签
  88. 传言中国新冠病毒的疫苗8月份可用
  89. 以牙还牙的外交战从关闭总领事馆开始
  90. 浙江大学学生违纪处理办法对付违法学生?
  91. 天才还是天才他爹?
  92. 独山县400亿元举债发展的烂摊子
  93. 美国明星纷纷宣布竞选总统,靠谱吗?
  94. 代言爱钱进不是最后一个
  95. 特朗普独立日煽动民粹?
  96. 台陆委会对台湾民众渲染“因言获罪”
  97. 放松警惕,是新冠疫情防控最大的危险
  98. 美国疫情再次失控,特朗普连任要崩溃
  99. 瑞幸咖啡收到退市通知,股价已跌九成
  100. 国美创始人黄光裕已出狱,概念股暴涨
  101. 韩国瑜败局早就注定:留任杨明州
  102. 国民党少了黄复兴特种党部,民进党多了国民特种党部
Sort:  

This post has received a 44.02 % upvote from @boomerang.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 62904.22
ETH 2571.38
USDT 1.00
SBD 2.76