作为一个友好的、功能丰富的区块链中间件平台,WeBASE一直致力于降低区块链开发者的研发门槛,提高区块链开发效率。
如今,WeBASE v1.5.4来了,此次更新新增区块链应用实训课程案例集,以及管理台操作指引与设计说明,助力社区开发者更快捷高效地学习区块链,搭建区块链应用。一起来看看v1.5.4带来的新功能吧!
新增实训课程案例集
如何将 WeBASE与区块链课程相结合,以更好地服务开发者?为解答这一命题, WeBASE团队和社区伙伴、社区开发者通力合作,对WeBASE功能进行有针对性的调整,在WeBASE v1.5.1中推出WeBASE实训插件,支持教学实训场景,详情见《开源进展 | WeBASE v1.5.1 发布,支持教学实训场景》。
在本次v1.5.4的更新中,WeBASE技术文档新增了“WeBASE实训课程案例”板块,收录的课程案例均为针对社区实训课程专门设计的,案例实现由实训题目、实验步骤和参考答案三个模块组成。
目前收录了从易到难的三个案例:运行第一个智能合约,积分转账合约实现,存证合约应用实现。开发者可以参考案例快速上手合约开发,社区伙伴可以参考案例,根据自身实际课程设计进行相应调整。
实训题目:描述了本次课程的具体要求。
如下图1所示,“运行第一个智能合约”的要求为:使用Solidity语言编写一个HelloWorld合约,说明该合约需包含哪些合约逻辑,实现怎样的效果,并给出了合约的基础框架。

图1:创建第一个智能合约-实训题目
实验步骤:描述了实训所需的各实验步骤,每个实验步骤会给出对应的答案“提交方式”要求,也就是在完成实验步骤后,需要提交哪些内容。
如下图2所示,“向部署的智能合约发送交易”这一步骤中,我们根据学生在该课程所需要掌握的知识点,列出了需要其提交的内容。比如,需要学生掌握通过SDK连接节点的知识点,则要求学生提交通过SDK连接节点的源码。
说明一下,此处实验步骤和提交内容可以根据自定义的课程内容进行调整。

图2:创建第一个智能合约-部分实验步骤
参考答案:WeBASE提供了一套基于FISCO BCOS和WeBASE完成的课程参考答案,包含了实现的源代码、实验步骤截图等。
未来,WeBASE 团队将持续挖掘 WeBASE 在区块链教育领域中的潜能,也欢迎各位社区开发者参与共建,创造更多元化的实训课程案例贡献到社区。
WeBASE管理台新增操作指引
本次更新中,WeBASE管理台各页面新增了【操作指引】,对页面模块功能的设计与使用方法进行说明,方便用户快速熟悉、掌握WeBASE。
如下图3所示,在WeBASE “私钥管理”页面中,用户可以通过页面右侧的【操作指引】,快速了解“新增用户”和“导入私钥”两个按钮的功能是什么,掌握其使用方法。

图3:WeBASE管理台-私钥管理页面
又如,可能有用户会疑惑为什么自己的私钥或者合约会被WeBASE标记为“异常”, 出现“用户异常”或者“合约异常”的告警。
如下图4所示,用户“0x97e9b7a9d5e19a8a0aa7cd39f632244da69640b6”被WeBASE标记为异常用户,出现在“交易审计-异常用户”的告警列表中。在v1.5.4新增操作指引后,用户可以在WeBASE管理台“交易审计-异常用户” 页面右侧操作指引中,快速查看交易审计功能的设计与使用说明,了解其被标记为“异常用户”原因为:该私钥用户在链上发起过交易,但是并没有在WeBASE的私钥管理中登记。
*只要某个私钥在链上发起了交易,或者某个合约部署到链上了但是未在WeBASE中登记,那么对应的私钥地址或合约地址即会被WeBASE标记为“异常”。

图4:WeBASE管理台-交易审计-异常用户页面
实际上,我们在“私钥管理-全量”用户列表中能看到该用户,说明该用户确实在链上发起过交易(如未发起过交易的私钥无法在全量用户列表中看到)。按照“交易审计-异常用户”的操作指引所描述,用户只需要在全量用户“导入”该私钥的地址到WeBASE中,或者将该用户地址对应的私钥导入到WeBASE中,即可消除“用户异常”的告警。

图5:WeBASE管理台-私钥管理页面
其他优化和修复
优化:优化WeBASE管理台的合约IDE交易体验,丰富入参提示,如bytesN类型提示输入长度并校验参数。
优化:新增WeBASE管理台中登录页“忘记密码“与”验证码加载失败“提示。
优化:优化合约仓库加载方式,通过conf/warehouse目录中的.json文件可加载合约模板;社区用户可以直接按照json格式,提交Pull Request贡献合约。
优化:更新可视化部署的build_chain脚本为最新的v2.8.0,修复openssl版本兼容性问题。
bugfix:修复WeBASE所调用的Java-SDK的KeyFactory一定情况下重复私钥的问题。
bugfix:修复查询event页面中获取合约列表,合约重复问题。
bugfix:修复可视化部署中检测localhost的误判。
即刻使用
上述优化及功能所涉及的最新代码和技术文档已同步更新,欢迎体验和star支持。
如需咨询技术问题,欢迎本公众号对话框回复【小助手】进技术交流群。
WeBASE 代码仓库:
https://github.com/WeBankBlockchain/WeBASE/
WeBASE 代码仓库国内镜像:
https://gitee.com/WeBank/WeBASE/
WeBASE 技术文档:
https://webasedoc.readthedocs.io/zh_CN/latest
WeBASE 技术文档国内镜像:
https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/doc/index.html
首次体验WeBASE,可参考一键部署文档:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.html
如需升级已有版本,可参考:
WeBASE一键部署的一键升级:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/upgrade.html#auto
WeBASE-Front升级说明:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/upgrade.html
WeBASE-Node-Manager升级说明:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Node-Manager/upgrade.html
WeBASE-Sign升级说明:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Sign/upgrade.html
WeBASE-Web升级说明:
https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Web/upgrade.html
向我们报告问题,欢迎提交issue:
https://github.com/WeBankFinTech/WeBASE/issues


无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg
当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在
1、接口请求基本操作1.1例子tips在view的选项可以zoomin调整窗口字帖大小。1、创建一个测试的workspace,并命名为test2、test后面新增一个addrequest3、选择发送GET,URL为一个开源的https://api.apiopen.top/api/sentences获取每日一句4、点击send查看内容Tips:如果提示出现Error:tunnelingsocketcouldnotbeestablished,statusCode=407错误,参照以下解决办法)关于tunnelingsocketcouldnotbeestablished,cause=getaddri