UTXO 和 Account 模型对比

2019-03-26

Daniel 为你解读 CKB 经济模型提案

自从我们发布了 Nervos CKB 经济模型提案之后,收到了很多社区小伙伴的反馈,大家在论坛中掀起了不少有意思的讨论,也提出了很多问题。上周,我们举行了第 17 场 Dev Meetup,这次 Daniel 借机为大家解读了这份经济模型提案,并解答了小伙伴们的疑问。对于这份提案你是否也有许多疑惑呢?快来点击活动视频,看看 Daniel 是否解答了你的疑惑。 精彩回顾 Daniel 在活动中提出了他认为 Nervos...

Read More
2019-03-25

Blockchain Coding Day 5th 活动精彩回顾

2019年3月24日,Nervos北京社区主办的Blockchain Coding Day如期举办,本次的联合主办方有珠峰培训[1],HiBlock社区[2]和好奇猫学院[3]。 在举办了5次活动之后,我们发现每次都有不同职业的人参与,相同的是他们都有强烈的好奇心和探索精神。这次活动让人印象深刻的是一个做硬件电路的同学,从“遥远”的通州赶来学习交流,虽然也是IT行业,但他说“隔行如隔山”,自己对于区块链是个小白,所以有很多问题要了解,和我们的教练交流了将近3个小时,从比特币、以太坊到Nervos基础知识,到区块链如何应用,到区块链未来的发展趋势,有一股“把你们知道的通通告诉我”的架势。 本次活动的同学们强烈建议我们普及一下更基础的知识,比如比特币和以太坊的原理,所以我们亮出了77页的幻灯片——初探以太坊[4],由社区管理员兼教练刘宁给大家讲解。让大家了解了coinbase交易,UTXO模型,如何验证区块,叔块奖励,为何引入gas,以及分叉的一些趣事。 活动后同学表示:收获很大,PPT动画特效不错啊 。 之后当然是一起coding(抠腚)了。因为这个过程比较耗费脑力,所以我们特意给大家准备了稻香村的甜点,还准备了秘猿科技[5]的贴纸。 我们在活动的过程中还收到了对于社区以及活动的建议,如:内容方面,增加更加基础的内容,探索一些应用的场景;社区方面,扩展合作渠道, 将社区的影响力做大。我们相信,通过我们和社区一起努力,Nervos北京社区一定会帮助到更多的人。 我们把BCD所用的资源已经公开,如果你想在自己的城市举办BCD,欢迎和我们联系,我们将提供全程支持,和大家一道完善这个有意义的活动。 Nervos北京社区致力于将区块链带给更多的人,通过整合不同的资源,让基于区块链的创新更加容易。Nervos北京社区主办的Blockchain Coding Day活动已经通过5场活动影响了近百人,通过coding这种最硬核的方式帮助同学们提升了对于区块链的认知,为未来的创新提供了更多的可能。 链接 [1] 珠峰培训: http://www.zhufengpeixun.cn[2] HiBlock社区: https://hiblock.one[3] 好奇猫学院: haoqicat.com[4] 初探以太坊: https://myslide.cn/slides/9076[5] 秘猿科技: https://www.cryptape.com BCD的资源请点击下方的原文链接获取。...

Read More
2019-03-19

第6次BCD线下活动:零基础教你开发DAPP

活动简介 互联网二十年的飞速发展已经从方方面面影响了人们的生活,区块链被称为新一代的互联网,正推动着整个世界的变革,区块链技术将带来信任,将可以给虚拟世界的资产进行确权,这是互联网做不到的,无疑也会影响人们生活的方方面面。而目前区块链的发展还处于很早期,最明显的一个现象就是,我们日常使用的app中很少有区块链的app,说明有大量的问题等待着我们去解决,然而这也意味着有潜在的巨大机会在里面,新一代的google和facebook可能就会诞生在这里。 我们希望通过coding这种最硬核的方式让你深入了解一个区块链应用——DAPP长得是什么样,是如何工作的,以此来为你打开通往区块链世界的另一扇大门,为你提供一个有力的工具撬动加密经济的巨大引擎。 我们的教程经过多次打磨和现场实践反馈,做到对于编程零基础的小白也能实现一个DAPP。 我们会在现场给所有人分组,并为每组配备一个教练,现场遇到任何问题,都可以随时和同组的人交流,当然,也随时可以找教练帮忙解决问题。 结束后会得到一个自己的DAPP: 可以在区块链上发布内容 可以展示所发布的内容   本次活动的开发基于Nervos的Appchain,Nervos Appchain是一套高性能的开源区块链解决方案,作为成熟产品在过去两年中成功地支撑了多家银行和金融机构的区块链创新业务。其中的核心组件CITA针对各类商业应用做了改进,包括支持灵活的激励机制(经济模型)和治理机制(通过智能合约进行记账节点配置、权重分配等)。 你的收获 学会如何使用Solidity开发智能合约 学到如何调试,编译和部署智能合约 学到如何使用React开发前端页面 熟悉整个的DAPP开发流程...

Read More
2019-03-15

强力推荐的值得关注的几个以太坊技术社区

以下排名不分先后 以太坊爱好者 EthFans,以太坊爱好者,创立于 2015 年,是国内最早的以太坊社区之一。三年来,以太坊爱好者一直秉持着“传播新知、凝聚共识”的理念,为中文的以太坊和密码学货币社区贡献翻译和原创内容,介绍以太坊的技术和运行原理、探讨去中心化网络的意义、聚焦密码学货币技术和生态的前沿议题。 HiBlock区块链社区https://hiblock.one[1] 价值观:开放、协作、透明、链接、分享 翻译过Solidity 0.4.22 https://solidity-cn.readthedocs.io/[2] 获得Ethereum Community Fund支持 专注于区块链的开发者社区,组织过60+线下技术沙龙,3场黑客马拉松,100+篇区块链技术文章。 橙皮书 橙皮书为区块链创造者和专业投资者提供内容服务。如果你希望在区块链世界里创造有价值的新事物,或者捕捉到有价值的投资标的,欢迎关注橙皮书。 Nervosfans...

Read More
2019-02-28

Nervos CKB区块链中的一等资产

文中提到的下面一些词,中英文是等价的: state:状态 asset:资产 First-class:一等 Account:账户 从一等函数到一等资产 一等函数(First-class Function):函数编程中,函数可以赋值给一个变量,可以当做参数传递给另外一个函数,也可以从一个函数当做返回值返回。这时候函数和数据也没什么区别,所以我们叫它“一等公民(First-class Citizen)”。这样的函数就是一等函数。 CKB的Cell模型用来构建整个区块链的状态,Cell模型的设计是和目前区块链都不同的一种设计模式,从这个模式中,用户定义的加密资产就像“一等公民”一样。后面我们一步步详细解释。 状态模型 在解释CKB的状态模型前,有必要先了解目前常见的两种状态模型: UTXO 模型 Account 模型...

Read More
2019-02-26

Blockchain Coding Day 4th 活动精彩回顾

Nervos北京社区2月24日在珠峰培训 ( http://www.zhufengpeixun.cn/ )成功举办了第四次Blockchain Coding Day线下活动,再次让更多的人通过这种hardcore的方式了解区块链,了解Nervos。   Nervos北京社区未来仍然会按照每月一期的节奏,把BCD(Blockchain coding day)活动一直进行下去,从而让更多人了解区块链技术。   活动开始的环节,是让每个人做自我介绍。本次参与的同学仍然是多种不同的背景,有的是本公司已经有一定积累的架构师想更多了解Nervos的优势,还有的是自己做儿童教育要和区块链结合并坚信区块链一定会变革整个社会,还有的是被朋友的朋友推荐来学习的开发者。看到这么多人对Nervos感兴趣,我们也意识到,一个区块链生态的成功,正是由这些具有不同专长和背景的人贡献才能做到的。   分享环节     由Shooter给大家进行分享,分享的大纲如下: Nervos是什么:一个分层架构的分布式应用网络...

Read More
2019-01-23

Blockchain Coding Day 3rd 活动精彩回顾

Nervos北京社区于本月20日在北京九章大厦举办了第三次线下活动。我们将把BCD(Blockchain coding day)活动一直推行下去,从而让更多人了解区块链技术。 虽然将近年关,但是还是有许多朋友来参与此次活动,着实感动。   破冰环节 首先由刘吉洋介绍了这次活动的目的,是为了让更多人了解区块链技术,了解Nervos; 也介绍了Nervos北京社区的由来和未来的一些计划,BCD活动每个月都会举办,也会进行更多有益的尝试。参与活动的朋友都分别做了自我介绍。 这次活动有中科院计算所研究区块链的妹子,有从内蒙古坐十几个小时火车赶来的银监局的公务员,有加班到凌晨七点最后也辛苦赶来的妹子,还有多次支持我们活动的周河教练,HiBlock社区的组织者,也是Nervos北京的组织者Bob 也给大家热情的介绍自己当初如何学习区块链知识,有大家的支持和参与,相信我们会越来越好。 本次教练: 参与者: 杨占坤、张国强、谭洪超、张兴泽、刘艳安、王恩凯、比特迷、陈双江、Jerry、Bob、刘一、张磊、梓翎 等 (部分参加活动的朋友,拍照者是梓翎)   分享环节...

Read More
2019-01-12

第三期blockchain coding day活动,你来参加么

题图:第二次BCD活动集体照片 上个月,已经是去年了,12月23日第二次BCD活动举办完,第三次活动姗姗来迟。这个月大家都比较忙,没定下来什么时候举办这次活动。 陆续有几个朋友问到:什么时候举行下一次活动啊? 我们定下了时间:2019年1月20号 下午1:00 ~ 下午6:00 地点:北京海淀中关村南二条一号九章大厦B座三层 如何参与: 此次活动为免费活动,为了保证参与质量与人数,需要先交20元报名费,当天参加活动后会退还。如未参与活动,押金将不退还。 提交报名申请后:  1. 扫下方二维码添加管理员微信,添加好友时请注明 ”BCD”  2. 微信转账20元报名费给管理员 ...

Read More
2018-12-07

智能合约 | 如何调试Solidity

对于一个新手来说,ta的Aha时刻来自于ta终于可以运行自己的第一行代码,我还记得我当年写的可以运行的“烂代码”的兴奋时刻。而当我利用自己的编程技能找到工作时,其中的一个Aha时刻来自于我学会了如何调试程序。调试程序占用工作的时间有时候会达到50%,面对着一堆代码逻辑就是不知道问题在哪里。而当我掌握了如何利用断点查看当前的变量和状态后,我的工作效率提升了一倍,bug变少了,幸福感提升了。 调试Solidity有一个很好的工具:Remix,通过这个链接可以进入到Remix的网站:http://remix.ethereum.org 。 代码编辑 之后我们可以把Solidity代码放到编辑器中,上图中可以看到最左侧的行数旁边有警告/错误提示,把鼠标放到上面会有具体的信息提示,根据提示修改代码就可以消除错误信息了。修改后的示例代码可以在这里获取:https://gist.github.com/luckyyang/8edc58ad647f35424823448ea4404f8d 。 合约编译 之后我们可以选择对应的编译器版本,示例代码中的版本是0.4.25,然后就可以编译了,看到绿色的提示表明编译成功。编译的主要工作是生成ABI和bytecode,本文不做阐述。 合约部署 编译成功后,就可以切换到Run标签进行合约的部署了,这里我们可以选择Environment为JavaScript VM,直接在浏览器中运行一个虚拟的区块链网络,这样就不用我们使用Mist和ganache-cli这类的工具再去运行区块链网络了。 如上图所示,选择JavaScript VM后,会自动帮我们生成5个Account,每个Account中有100个Ether,足够我们开发使用了。 如上图所示,点击Deploy按钮后就可以部署合约了,部署成功后会自动显示合约的信息。点击合约会显示所有的变量和方法。 合约交互 如上图所示,红色表示此类方法会修改合约的状态,也表明了需要消耗gas;青色表示此类方法的作用是获取信息,不会修改合约的状态。点击具体的方法名字就可以和合约进行交互了。 合约调试 如上图所示,同时与合约交互的transaction也会显示到代码区下面的区域。点击Debug按钮会跳转到Debugger界面(下图),不但可以进行单步调试,还可以看到合约中更具体的信息,如变量和合约状态等。...

Read More
2018-12-04

以太坊智能合约与逆波兰表达式

想必大家对 1+1,3-4,5*6, 8/4,(1+6)*9,1+6*7,这些简单的数学四则运算都不陌生,有时候遇到买菜大姐, 这些菜称称,一共多少钱啊? 8块,给10块,哎这还有3块,找个儿整。人民群众喜闻乐见,耳熟能详的四则运算,有个高级的称呼中缀表达式。   为什么是中缀,而不是前缀、后缀、上缀、下缀? 中缀因为操作符都在中间位置,那能放到后面去么?当然可以了。 这种把操作符置后的方式叫逆波兰表达式,即 RPN,更通俗的叫法是后缀表达式。 中缀表达式怎么和后缀表达式对应呢? 后缀表达式有什么优点? 相较于前缀表达式更易于转换,最左边一定为运算资源。 不用括号,依靠运算顺序就能确定运算符的优先级,运算更简洁。 更符合计算机的计算方式。计算机通过从左至右读取后缀表达式,就可以将遇到的运算对象压入栈,在遇到运算符时就弹出运算资源,完成计算,再将结果压入栈。最后留在栈中的就是计算结果。 来点小例子,展示后缀表达式的方便与神奇。...

Read More
2018-12-02

[视频文字稿大纲] 手把手教你开发DApp

我们在11月25日举行了第一场Blockchain Coding Day活动,活动内容是教大家写一个简单的Dapp。针对线下活动遇到的问题,特意在B站发布了一个视频,方便大家进行回顾。 视频链接:https://www.bilibili.com/video/av37213922/,时长18分钟。 视频内容分以下部分: 下载源码并安装依赖 替换地址 通过测试网的水龙头充值 替换abi与bytecode 部署合约 运行Dapp 部署到腾讯云 在上次活动中遇到的一个很棘手的问题是操作系统。 大家有用Window的,也有直接使用Linux的Ubunut,还有使用Mac的。因为Node.js某些类库依赖C++,本地编译需要安装node-gyp,node-gyp在纯windown环境安装非常麻烦。 我们不推荐Window, 可以使用虚拟机在Window系统中安装一个Linux的Ubunut系统,...

Read More
2018-11-26

Blockchain Coding Day活动精彩回顾

Blockchain Coding Day于2018年11月25日顺利举办,本次活动由Nervos北京社区主办,星群加速器、HAOQICAT.COM、HIBLOCK和小芦蜂联合主办。 活动的目标是希望通过一天的沉浸式的编程体验,让参与者学习到DApp开发的流程和编程的乐趣。活动的形式是随机的方式分成多个小组,每个小组由一个教练带领,根据Peter老师的DApp开发教程《基于 Nervos AppChain 的 DApp 开发》来一起学习,最终开发出一个属于自己的DApp。没有到现场的小伙伴也可以自学,课程链接为 https://learning.nervos.org/nerv-first 。 通过这次学习,大家学到了如何使用代码编辑器编写智能合约;然后学会了通过调试工具Remix编译合约,将合约编译成bytecode 和ABI,bytecode会被放到区块链上,是EVM执行所用到的,ABI(Application Binary Interface)用来告诉代码如何使用合约中的函数;然后大家学会了如何把合约部署到Nervos的Appchain上;最后大家学会了如何使用React编写前端页面,与智能合约交互,并显示结果在页面上。 下午Peter老师给大家做了一个light...

Read More
2018-11-23

种类繁多的比特币地址

在之前的一篇文章中,我们介绍了比特币地址的生成过程,分为了8个步骤,不知道大家有没有动手试试呢?自己就可以在离线环境中生成非常多的冷钱包地址,前提是你有非常多的比特币需要自己保存。壕,交个朋友吧。 其中有个细节,我们在计算完Hash160的结果后, 第四步的操作是加上主网的前缀符 00,大家对这个操作有很多疑问,这个前缀符有什么用?其实比特币的地址类型有很多种,不同类型的地址应用于不同的场景,如何区分呢,自然就是前缀符了。   P2PKH类型的地址最常用,比特币网络的很多地址是这种。可用于转账、发账, 支持最最常用的操作,安安静静,低调内敛。 P2SH类型的地址支持多重签名。 什么是多重签名呢? 假设3个人管理一个基金会的比特币账户,规定至少2个人同意的时候才能动用,我们就可以做一个3-2签名的多重签名,也可以做5-3签名的,5个人中只要有3个同意,就可以动用。其实还可以做5-5签名,只有5个人都同意了,才能动用,绝对的民煮。交易所的冷钱包往往都是多重签名地址,利于分权,其实也降低了风险。 以太坊的多重签名,需要编写智能合约,虽然有些麻烦,但能进行更细致的分配。 Testnet类型的地址,这个很好理解,软件工程中常常有测试环境,区块链也分为主网、测试网,主网是我们在使用的真正的转账网络,测试网主要用于测试,我们可以获取一定数量的测试币,进行调试,而不用花费真金白银,也能提前发现bug,是不是很像游戏的不删档内测。 下图是同一个私钥,生成的不同类型地址,这3个地址都是34位长度,由于大小写字体的字宽问题,在视觉上长度不一致。 以太坊的地址比较统一,主网地址,测试网地址都是同一个类型的。 最近很吸引眼球的吴比特币、澳比特币分叉事件,闹得鸡飞狗跳,吴比特币的前身BCH地址跟比特币地址差异很大,其实他们是能互相转换的,为什么呢?因为有相同的hash160, 地址只是一种方便人可读的呈现方式。欲要分叉,先改其地址 …… ...

Read More