上一章我们学习了开发智能合约之前需要知道的必要概念:
- 什么是webAssembly以及它在智能合约上下游中的位置;
- 什么是ABI以及怎样使用eosiocpp工具产生ABI和wasm、wast
hello
智能合约的简单入门:部署和调用如果说智能合约开发是一个锁着门的图书馆,那么之前的学习就是钥匙。现在我们终于可以拿着钥匙打开大门,走进去一探究竟。
摘要
说到智能合约开发,大家首先想到的肯定是写代码、像solidity开发一样教语法。EOS的智能合约是用C++写的,基本语法大家可以去买本C++的书;这一篇主要介绍EOS智能合约的数据存储,为大家扫清智能合约开发道路上的最后一道障碍。
什么是RAM
之前我们在学习如何在主网创建账户
时,曾经接触到RAM
的概念。我们不能像操作以太坊那样,凭空生成一个地址作为自己的账户,而是要先有一个账户,再去创建另一个账户。其中就涉及到一个关于RAM很关键的知识点:创建账户需要消耗RAM。
当时我们只是很模糊地知道,RAM大概是内存的意思。
RAM is used to store data in an in-memory database. DApps will use this to store state information so it is quickly available to their app.
RAM是EOS主网中的内存,用于存储用户在EOS中使用频率高的数据(账户余额、合约状态等)。
BM对EOS的期望是成为区块链世界中的【操作系统】,因此可以把计算机的一些概念对标到EOS中,其中计算机中的运行内存,在EOS中就可以看做是RAM;而硬盘就可以对标EOS区块链数据库。
所以高访问量的决策类数据,例如账户余额、智能合约的当前状态等就会被存储在RAM中,并且这部分数据将长期占用RAM;而低访问的费决策性存证数据,例如交易数据,就会存储在EOS系统的硬盘中,也就是区块链中。当存储账号状态的空间不足,即RAM不足时,转账或