CSDN社群十问十答(区块链第一期)

过去的一周,我们从CSDN 区块链社群中,整理了小伙伴们提问较多的问题,并请技术达人对这些问题进行了回答,现整理如下。欢迎大家在社群中积极提问哦,积极提问的小伙伴还将获得CSDN提供的神秘纪念礼品哦!

问题1、比特币/区块链 中的“小于目标hash值 该区块有效”, 该怎么理解呢?    
没有什么特别含义,就是人为规定的而已。既然不是所有hash都有效,你总要规定一个范围,哪一个范围内的hash有效,你可以规定说小于目标hash的有效,也可以规定说大于目标hash的有效,但是中本聪规定了说以小于目标hash有效,那么大家就这么约定俗成的下来了。你完全可以发明自己的比特币,偏就要以大于目标hash才有效,也可以,只要有人愿意陪着你这么玩就行。

问题2、"在比特币里面,区块链的共识机制用了 POW,需要六个区块的最长链选择确认过程。
假设现在可探测的全节点数量是 10000 个,如果有人恶意接入 20000 个全节点,并且不遵循六个区块的最长链选择规范,这样对这条链会产生什么影响么?"    

"我的想法相当于是一套区别于原链的共识机制,并且不兼容原链
其实这就是所谓的 硬分叉、山寨币
即使你的节点数量多于正规节点,但你不会被同样遵循官方共识机制的人所认可,不被认可的分支,即使你数量再多,也没有存在的意义"


问题3、区块链共识要求所有矿工对要写入的节点进行验证,并且所有矿工都确认之后才能写入链中,那么如何让所有矿工知道是“所有”呢?难道每个节点之间是完全互相连接的么?    
最终一致性和强一致性的区别。类似Paxos、Raft、PBFT都是在提交时就已经保证了Safety。公链采用的共识算法,节点会把通过验证的当前最长链看作主链,如果探测到更长的链,则切换过去,从概率上最终保证一致性。

问题4、当有新矿工加入链中,如何让全网的矿工更新这个“所有”的信息呢,并且让新节点知道“全网”的信息呢?    
公链节点可以随时加入、退出,共识达成不需要节点交互达成强一致,网络层的路由信息由类似DHT的表来维护;而运行PBFT等算法的联盟链必须提前知道节点数量(节点变更会运行视图切换协议,但很复杂)

问题5、谁能用通俗易懂的言语解释一下区块链中的节点和区块的意思啊 。

 “节点”(Nodes)对应于一台运行区块链程序的电脑,“区块”(Block)是区块链账本(数据库)的一个单元。

问题6、如何用JavaScript实现区块链?
"一个适合新手的以太坊DApp开发教程:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180321sf"

问题7、智能合约中的变量读取时需要遍历整个区块链中的相关交易吗?    
可以看一下这个,https://medium.com/aigang-network/how-to-read-ethereum-contract-storage-44252c8af925

问题8、如何获取区块链上的所有数据?
以ETH为例,克隆这个仓库:https://github.com/ethereum/go-ethereum,然后本地跑ETH节点,同步完你所有数据都有了。

问题9、区块链eos创建了钱包,但是wallet list并没有钱包的存在?    
cleos wallet import <your key>

问题10、智能合约中的变量读取时需要遍历整个区块链中的相关交易吗?    
不需要,合约本质是一个账户,以太坊的账户体系中是可以存储数据的,没增加一个区块,有些账户的数据就变动了,如果合约被调用,数据变动了,其实在区块上链后,也就是新的数据了。

欢迎大家扫码进群交流哦!我们还将每周分享技术学习资源+每月推出技术主题月活动+群主、技术达人在线答疑互动!

猜你喜欢

转载自blog.csdn.net/CSDNedu/article/details/91993557