201期【币圈人物】 计数员王纯|超级君【2019-11-29 1732】
“从童年起,我便独自一人照顾着,历代的星辰。” 这首短诗瞬间打动人心,将孤独写绝,远胜“独立寒江雪”和“念天地之悠悠”,揭示着浩瀚下的孤独,意象令人神往。翻看区块链朋友圈,若从中选一个人来当那个照顾历代星辰的孩子,王纯是不二人选。因为他也是一个孤独的大男孩,同时他对浩瀚的时空有着如痴如醉的爱好,计数是他照看的办法,数的递增,让他有着充实感和成就感。浩瀚无垠的星辰,是一个天文数字,数星星或许可以给他带来极致满足。 他从小就是一个计数员,远在他读初中的时候,第一天注册登陆QQ时,他就给自己的QQ名取名为1,第二天改为2,第三天改名为3.......光阴似箭,日月如梭,花开花落八年后,直到第2523天,他终于觉得这份计数过于无聊了,所以才放弃继续计数,其QQ名就停留在2523。2013年,在一个矿工群里,“2523”遇到了“七彩神仙鱼”。当时七彩神仙鱼是半个中国矿工的老师傅,从显卡时代到阿瓦隆矿机时代,从QQ群到论坛。说到这里,想起当年还有一个“传说哥“,50元教挖矿,风吹雨打,几年后,神鱼还是神鱼,传说哥早没了传说。总而言之,王纯和神鱼几经交流之后,决定联手打造一个比特币矿池,矿池名...
235期【基础知识】 北纬老师---比特币常见问题
本内容来自于北纬老师 前言: 这个帖子主要是为新手解惑,目前币圈因为在国内未被统一化,一如既往对新手很不友好,甚至连你开始下载的交易所app都有可能是假的,这个帖子主要是为了避免新手踏坑。 当你决定进入这个市场,一定要明白,这是一个无涨跌限制、24小时全球不间断交易、风险巨大的市场。的确,很多人在这个市场里面,赚取了无数财富,完成人生越级,这些故事每天都在被人津津乐道口口相传,但是,更多的是,无数人亏损黯然离场,只是他们一直保持沉默。 1.比特币是什么。 比特币是一个共识网络,促成了一个全新的支付系统和一种完全数字化的货币。可以把比特币理解为2个层面:1.这是一个去中心支付系统;2.数字互联网货币。 比特币总量为2100万枚,通过“挖矿”形式,每十分钟产生一个块,块里面包含50个比特币和手续费。块奖励是每四年减半一次,第一次减半后块奖励为25个比特币,第二次是12.5,目前块奖励为6.25个比特币。 2.新人对比特币的误解。 1)市面上显卡断货,涨价,却不是用来挖比特币的; 2)比特币在国内并不违法,公民可以合法持有,但,金融机构禁止进入,国内不允许开交易所,且国内比特币并不能称...
币圈人士必备工具(收藏)
币圈新闻、资讯金色财经网址:https://www.jinse.com/ 目前国内最大的区块链行业新闻媒体平台,资讯行情做的都还可以,特色:签约作者比较多,内容差异化做的不错。巴比特网址:https://www.8btc.com/ 巴比特创始人长侠,依靠论坛起家,里面有很多牛人,现在转型做新闻平台,旗下链节点论坛做的也不错。传统输出型媒体,资讯内容丰富且质量较高,特色:老牌资讯行情软件,综合实力最强。火星财经网址:https://www.huoxing24.com/ 火星是区块链行业新闻媒体平台,定位和金色差不多,优点是可以听新闻。区块链头条网址:http://blocktop.cn/Home/Index/index.html 区块链头条是新锐区块链媒体品牌,聚焦全球区块链行业资讯,专注于区块链产业的服务平台。集快讯、时讯、深研、行情、课堂等为一体。7*24 小时行业资讯追踪报道,秉承“客观、真实、深度”的理念,服务全球区块链领域生态。 行情软件Aicoin网址:https://www.aicoin.cn/ 炒币软件必备,圈子里用的人挺多的。Aicoin适合技术分析派,里面有很多...
同学区块链,同学数字货币。
201期【币圈人物】 计数员王纯|超级君【2019-11-29 1732】
“从童年起,我便独自一人照顾着,历代的星辰。” 这首短诗瞬间打动人心,将孤独写绝,远胜“独立寒江雪”和“念天地之悠悠”,揭示着浩瀚下的孤独,意象令人神往。翻看区块链朋友圈,若从中选一个人来当那个照顾历代星辰的孩子,王纯是不二人选。因为他也是一个孤独的大男孩,同时他对浩瀚的时空有着如痴如醉的爱好,计数是他照看的办法,数的递增,让他有着充实感和成就感。浩瀚无垠的星辰,是一个天文数字,数星星或许可以给他带来极致满足。 他从小就是一个计数员,远在他读初中的时候,第一天注册登陆QQ时,他就给自己的QQ名取名为1,第二天改为2,第三天改名为3.......光阴似箭,日月如梭,花开花落八年后,直到第2523天,他终于觉得这份计数过于无聊了,所以才放弃继续计数,其QQ名就停留在2523。2013年,在一个矿工群里,“2523”遇到了“七彩神仙鱼”。当时七彩神仙鱼是半个中国矿工的老师傅,从显卡时代到阿瓦隆矿机时代,从QQ群到论坛。说到这里,想起当年还有一个“传说哥“,50元教挖矿,风吹雨打,几年后,神鱼还是神鱼,传说哥早没了传说。总而言之,王纯和神鱼几经交流之后,决定联手打造一个比特币矿池,矿池名...
235期【基础知识】 北纬老师---比特币常见问题
本内容来自于北纬老师 前言: 这个帖子主要是为新手解惑,目前币圈因为在国内未被统一化,一如既往对新手很不友好,甚至连你开始下载的交易所app都有可能是假的,这个帖子主要是为了避免新手踏坑。 当你决定进入这个市场,一定要明白,这是一个无涨跌限制、24小时全球不间断交易、风险巨大的市场。的确,很多人在这个市场里面,赚取了无数财富,完成人生越级,这些故事每天都在被人津津乐道口口相传,但是,更多的是,无数人亏损黯然离场,只是他们一直保持沉默。 1.比特币是什么。 比特币是一个共识网络,促成了一个全新的支付系统和一种完全数字化的货币。可以把比特币理解为2个层面:1.这是一个去中心支付系统;2.数字互联网货币。 比特币总量为2100万枚,通过“挖矿”形式,每十分钟产生一个块,块里面包含50个比特币和手续费。块奖励是每四年减半一次,第一次减半后块奖励为25个比特币,第二次是12.5,目前块奖励为6.25个比特币。 2.新人对比特币的误解。 1)市面上显卡断货,涨价,却不是用来挖比特币的; 2)比特币在国内并不违法,公民可以合法持有,但,金融机构禁止进入,国内不允许开交易所,且国内比特币并不能称...
币圈人士必备工具(收藏)
币圈新闻、资讯金色财经网址:https://www.jinse.com/ 目前国内最大的区块链行业新闻媒体平台,资讯行情做的都还可以,特色:签约作者比较多,内容差异化做的不错。巴比特网址:https://www.8btc.com/ 巴比特创始人长侠,依靠论坛起家,里面有很多牛人,现在转型做新闻平台,旗下链节点论坛做的也不错。传统输出型媒体,资讯内容丰富且质量较高,特色:老牌资讯行情软件,综合实力最强。火星财经网址:https://www.huoxing24.com/ 火星是区块链行业新闻媒体平台,定位和金色差不多,优点是可以听新闻。区块链头条网址:http://blocktop.cn/Home/Index/index.html 区块链头条是新锐区块链媒体品牌,聚焦全球区块链行业资讯,专注于区块链产业的服务平台。集快讯、时讯、深研、行情、课堂等为一体。7*24 小时行业资讯追踪报道,秉承“客观、真实、深度”的理念,服务全球区块链领域生态。 行情软件Aicoin网址:https://www.aicoin.cn/ 炒币软件必备,圈子里用的人挺多的。Aicoin适合技术分析派,里面有很多...
同学区块链,同学数字货币。

Subscribe to 币同学

Subscribe to 币同学
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
你好,我是币同学。这是我分享学习的第160天,每天学习进步一点点。
关键词:北大肖臻老师的公开课,关于以太坊的状态树。
1. 以太坊采用的是基于账户的模式,系统中显示维护每个账户的余额,那以太坊是用什么样的数据结构,来实现这样的模式?
我们要完成的是什么功能?是账户地址到账户状态的映射。addr→state(账户状态包括:
外部账户和合约账户的状态,包括余额、交易次数nonce;合约账户还包括代码和存储。)
以太坊用的账户地址是160位(bits)的,也就是20个字节,一般表示成40位十六进制的数。
2.trie数据结构,翻译为中文叫字典树/前缀树。

在上述例子中:单词,有可能在trie的中间节点结束。
这个结构有些特点,第一个特点就是在trie当中,每个节点的分支数目取决于key值里,每个元素的取值范围。第二个特点是trie的查找速度,取决于key的长度,key的长度越长,查询需要访问内存的次数就越多。第三个特点就是trie不会出现碰撞。第四个特点就是trie顺序的一致性,只要给定一组输入不变,无论你的输入怎么打乱重新排序,最后插入的trie当中,构成的trie是同一棵树。第五个特点就是更新的局部性是很好的。
trie的缺点:存储有些浪费,像上图中左边一列,都只有一个子节点,一脉单传的情况。如果我们能把这些节点进行合并,能够减少存储的成本,同时也提高了查找的效率。
那么在以太坊里面是什么样的?以太坊地址是表示成40位十六进制的数,所以分叉数目叫做分支因子(branching factor),是17。因为是16进制的,0——f,加上一个结束标志符,所以是17。
3.以上述例子来解释patricia tree/trie

这样压缩路径的好处:直观上看,树的高度明显缩短了,这样访问内存的次数就会大大减少,效率就提高了。
键值分布比较稀疏的时候,路径压缩效果比较好。
【注意:对于patricia tree/trie来说,如果新插入一个单词,原来压缩的路径,可能需要扩展开来。】
在以太坊的键值是地址,地址是160位的,所以整个地址的空间有2的160次方(这是一个非常非常大的数)。
以太坊的普通账户,创建的方法和比特币是一样的。没有一个中央的节点,每个用户自己独立创建账户,你在本地产生一个公私钥对,就是一个账户。
那如何防止两个人的账户正好碰撞(产生的一样)?这种可能性是存在的,但是概率其实是微乎其微的。
以太坊当地址足够长的时候,分布足够稀疏,才不会产生碰撞。这可能看上去有点浪费,但这是去中心系统防止账户冲突的唯一办法。
4. MPT(merkle patricia tree)
Merkle Patricia Tree(又称为Merkle Patricia Trie)是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,是以太坊中用来组织管理账户数据、生成交易集合哈希的重要数据结构。
以太坊中,用到的还不是原生版的MPT,用的叫modified MPT,对MPT结构做一些修改,这些修改不是很本质的修改。

如图:这四个地址,前两位的开头都是a7,所以它的根节点就是extension node(即a7)
Shared nibble(s)是十六进制数的意思,一个nibble就是一个十六进制数。
地址的第三个数就分开了,有1、7、f。
1的后面只有一个地址,就1355,以此类推。
【注意:如例子中,数的根节点取哈希之后,得到了一个根哈希值,根哈希值要写进块头里。】
这就是一个关于地址余额的状态树。
每次发布新一个新的区块的时候,状态树中有些节点数的值,会发生变化。这些改变,不是在原地改的,而是新建一些分支,原来的状态是保留下来的。

上面的例子,是合约账户,有code(代码),还有存储。
合约账户的存储,也是用MPT的方式保存下来的。
例子中,新的区块里交易次数nonce是发生变化了,余额balance也发生变化。
代码code是不变的,所以code hash是指向原来树中的节点。
存储是变了的,但是存储树中的大部分节点也是没有改变的,只有底下的一个节点---整数变量从29变成了45。
以太坊系统的全节点,维护的不是一颗MPT,而是每次出现一个区块,都要新建一个MPT。只不过这些状态树中,大部分的节点是共享的。只有少数发生变化的节点,需要新建分支。
5. 出现一个新的区块,为什么要新建一个MPT?举个例子,如下图

以太坊有智能合约,以太坊的智能合约是图灵完备的,编程功能是很强的。从理论上说,可以实现很复杂的功能,它与比特币中简单的脚本还不同。所以以太坊中,如果不保存前一个的状态,智能合约执行完之后,不可能再推算出前面是什么状态。所以要想支持回滚,必须保存历史状态。
6. 以太坊代码的数据结构图



7. 状态树中保存的是(key,value),key就是地址,目前上述的内容主要指的是键值,地址的管理方式。
value,是要经过一个序列化的过程(RLP:recursive length prefix),用编码做序列化之后再做存储。
特点是简单,越简单越好。
今天就学习到这里,明天见。
你好,我是币同学。这是我分享学习的第160天,每天学习进步一点点。
关键词:北大肖臻老师的公开课,关于以太坊的状态树。
1. 以太坊采用的是基于账户的模式,系统中显示维护每个账户的余额,那以太坊是用什么样的数据结构,来实现这样的模式?
我们要完成的是什么功能?是账户地址到账户状态的映射。addr→state(账户状态包括:
外部账户和合约账户的状态,包括余额、交易次数nonce;合约账户还包括代码和存储。)
以太坊用的账户地址是160位(bits)的,也就是20个字节,一般表示成40位十六进制的数。
2.trie数据结构,翻译为中文叫字典树/前缀树。

在上述例子中:单词,有可能在trie的中间节点结束。
这个结构有些特点,第一个特点就是在trie当中,每个节点的分支数目取决于key值里,每个元素的取值范围。第二个特点是trie的查找速度,取决于key的长度,key的长度越长,查询需要访问内存的次数就越多。第三个特点就是trie不会出现碰撞。第四个特点就是trie顺序的一致性,只要给定一组输入不变,无论你的输入怎么打乱重新排序,最后插入的trie当中,构成的trie是同一棵树。第五个特点就是更新的局部性是很好的。
trie的缺点:存储有些浪费,像上图中左边一列,都只有一个子节点,一脉单传的情况。如果我们能把这些节点进行合并,能够减少存储的成本,同时也提高了查找的效率。
那么在以太坊里面是什么样的?以太坊地址是表示成40位十六进制的数,所以分叉数目叫做分支因子(branching factor),是17。因为是16进制的,0——f,加上一个结束标志符,所以是17。
3.以上述例子来解释patricia tree/trie

这样压缩路径的好处:直观上看,树的高度明显缩短了,这样访问内存的次数就会大大减少,效率就提高了。
键值分布比较稀疏的时候,路径压缩效果比较好。
【注意:对于patricia tree/trie来说,如果新插入一个单词,原来压缩的路径,可能需要扩展开来。】
在以太坊的键值是地址,地址是160位的,所以整个地址的空间有2的160次方(这是一个非常非常大的数)。
以太坊的普通账户,创建的方法和比特币是一样的。没有一个中央的节点,每个用户自己独立创建账户,你在本地产生一个公私钥对,就是一个账户。
那如何防止两个人的账户正好碰撞(产生的一样)?这种可能性是存在的,但是概率其实是微乎其微的。
以太坊当地址足够长的时候,分布足够稀疏,才不会产生碰撞。这可能看上去有点浪费,但这是去中心系统防止账户冲突的唯一办法。
4. MPT(merkle patricia tree)
Merkle Patricia Tree(又称为Merkle Patricia Trie)是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,是以太坊中用来组织管理账户数据、生成交易集合哈希的重要数据结构。
以太坊中,用到的还不是原生版的MPT,用的叫modified MPT,对MPT结构做一些修改,这些修改不是很本质的修改。

如图:这四个地址,前两位的开头都是a7,所以它的根节点就是extension node(即a7)
Shared nibble(s)是十六进制数的意思,一个nibble就是一个十六进制数。
地址的第三个数就分开了,有1、7、f。
1的后面只有一个地址,就1355,以此类推。
【注意:如例子中,数的根节点取哈希之后,得到了一个根哈希值,根哈希值要写进块头里。】
这就是一个关于地址余额的状态树。
每次发布新一个新的区块的时候,状态树中有些节点数的值,会发生变化。这些改变,不是在原地改的,而是新建一些分支,原来的状态是保留下来的。

上面的例子,是合约账户,有code(代码),还有存储。
合约账户的存储,也是用MPT的方式保存下来的。
例子中,新的区块里交易次数nonce是发生变化了,余额balance也发生变化。
代码code是不变的,所以code hash是指向原来树中的节点。
存储是变了的,但是存储树中的大部分节点也是没有改变的,只有底下的一个节点---整数变量从29变成了45。
以太坊系统的全节点,维护的不是一颗MPT,而是每次出现一个区块,都要新建一个MPT。只不过这些状态树中,大部分的节点是共享的。只有少数发生变化的节点,需要新建分支。
5. 出现一个新的区块,为什么要新建一个MPT?举个例子,如下图

以太坊有智能合约,以太坊的智能合约是图灵完备的,编程功能是很强的。从理论上说,可以实现很复杂的功能,它与比特币中简单的脚本还不同。所以以太坊中,如果不保存前一个的状态,智能合约执行完之后,不可能再推算出前面是什么状态。所以要想支持回滚,必须保存历史状态。
6. 以太坊代码的数据结构图



7. 状态树中保存的是(key,value),key就是地址,目前上述的内容主要指的是键值,地址的管理方式。
value,是要经过一个序列化的过程(RLP:recursive length prefix),用编码做序列化之后再做存储。
特点是简单,越简单越好。
今天就学习到这里,明天见。
No activity yet