由于机器配置的限制,docker部署就不整了,直接起。
=====================================================
我认为,理解EOSIO中的账户权限体系对于在上面进行相关开发是至关重要的。其中包括:账户(accounts)、钥匙对(key-pairs)、钱包(wallet)、权限(authorities & permissions)以及它们之间的关系。官方wiki上和白皮书上有十分详尽的解释,我也是研究思考请教实践了好久才有所理解,下面就说下我自己的一些浅解,如有不准确的地方请及时指出(lupeihe@gmail.com).
与ETH和BTC不同,EOS在弱化了私钥的地位,在链上交互是以账户为基础(类似于BTS和GXS)。相比于一长串哈希值,账户的可读性更强,更容易普及。它是链上唯一的标识,存储在链上,与链直接交互。通过给账户配置不同的权限,来赋予和限制它所能进行的操作(action)。
一个账户一旦被创建,就会被授予两个默认的权限:owner和active。owner:拥有这个权限意味着他是这个账户的主人(可以有多个账户有owner权限),owner是这个账户的最高权限,可以对这个账户做任何操作(相当于admin或root权限),但是一般不会用它进行操作,出了一些特殊的操作,比如恢复权限等,一般冷存储。active:一般用于转账,投票出区块生产者(超级节点)以及对一些权限的修改。(具体需要参考api)
除了这两个基本权限外,还可以自定义具体的权限,官方举了个例子:publish权限。比如说在某个dapp上发布一篇文章需要有publish权限,@bob和@stacy都只需要自己的一个签名就能发布文章,而最后那个公钥账户除了自己的一个签名外,还需要另外一个账户的签名才能发布,因为它自身的签名weight在publish下只有1。
note:账户名和公钥都能代表一定的权重来设置权限(签名)。
Weight是指这个账户对于某个权限能授予的权重,Threshold是拥有这个权限需要达到的权重门槛值
Permission | Account | Weight | Threshold |
---|---|---|---|
owner | 2 | ||
@bob | 1 | ||
@stacy | 1 | ||
active | 1 | ||
@bob | 1 | ||
@stacy | 1 | ||
publish | 2 | ||
@bob | 2 | ||
@stacy | 2 | ||
EOS7Hnv4iBWo1pcEpP8JyFYCJLRUzYcXSqt... | 1 |
自己画了下它们之间的大概关系,可能不严谨。
在构建完本地的EOSIO源码后,启动单节点测试网络($ nodeos)。利用cleos客户端命令可以进行相关的测试和验证,具体就不赘述了,直接参考githhub文档就行,无非就是一些命令参数或者api的使用。整个权限控制体系的理解,才是今后开发智能合约和Dapp的核心
我认为EOSIO权限控制体系最大的优点在于高灵活性,更适合复杂的社会应用场景,也正因为如此,更深的理解需要等具体场景下用起来才能有更深入的体会。
下次准备开启智能合约开发的探索~~
ps:拉取了下最新的代码,build的最少内存提升至7g了。