开源进展 | WeBASE v3.1.0发布,新增多个实用特性
WeBASE是一个友好、功能丰富的区块链中间件平台,通过一系列通用功能组件和实用工具,助力社区开发者更快捷地与区块链进行交互。
目前WeBASE已更新迭代至v3.1.0版本,本次更新中,WeBASE带来了最新的合约Java脚手架导出功能,完成达梦数据库适配,新增WeBASE CRUD预编译接口代码,并在技术文档中归类呈现了数十篇由社区开发者贡献的区块链教程,以便用户可以按需查阅。
一起来看看WeBASE v3.1.0的新功能吧,欢迎大家star并积极体验。
Java项目导出更友好
本次更新中,我们引入了微众区块链开源的WeBankBlockchain SmartDev-Scaffold合约中最新的v3.3.0版本Java脚手架组件,适配了合约IDE 中Java项目导出功能。
WeBASE v3.1.0导出的Java项目会自动配置节点的IP端口、SDK证书、私钥,使用方法与WeBASE v1.5.5版本所导出的Java项目使用方法一致。同时,基于WeBankBlockchain SmartDev-Scaffold组件,WeBASE优化了导出Java项目的代码逻辑,代码更简洁,可读性更好,更方便开源社区的开发者基于SmartDev-Scaffold或WeBASE的导出接口进行二次开发。
与此同时,WeBASE v3.1.0支持使用 Solidity v0.8.11版本的合约进行Java项目导出,同时也优化了对struct等复杂参数的适配。
图1-导出Java项目
适配达梦数据库
达梦数据库是具有完全自主知识产权的高性能数据库管理系统。来自数字广东网络建设有限公司的开发者梁锦辉(github ID:JHL)基于WeBASE v3.0.2 tag的代码进行二次开发,将私钥托管与签名服务WeBASE-Sign和节点管理服务WeBASE-Node-Manager适配了达梦数据库,并将代码贡献至WeBASE-Sign和WeBASE-Node-Manager的lab-xc分支。
值得关注的是,适配达梦数据库的代码可以通过修改数据库的JDBC驱动和修改Mybatis的配置,实现同一套代码在MySql和达梦数据库之间进行切换使用。
梁锦辉将如何改造WeBASE代码适配达梦数据库的经验整理为技术教程,帮助社区开发者理解其改造思路,方便使用WeBASE其他版本的社区开发者们可以参考其教程对WeBASE进行二次开发。
图2-达梦数据库适配教程
适配达梦数据库的WeBASE-Sign代码仓库:
https://github.com/WeBankBlockchain/WeBASE-Sign/tree/lab-xc
适配达梦数据库的WeBASE-Node-Manager代码仓库:
https://github.com/WeBankBlockchain/WeBASE-Node-Manager/tree/lab-xc
《使用达梦数据库对WeBASE进行适配》技术教程:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Console-Suit/articles/dameng_db_fit_in.html
新增WeBASE CRUD预编译接口代码
社区开发者李铁乔(github ID:Litieqiao)基于FISCO BCOS console控制台与WeBASE-Front v1.5.5版本的CRUD预编译合约接口,完成了节点前置服务WeBASE-Front中适配FISCO BCOS v3.x CRUD接口的开发,开发者可以直接调用节点前置的接口来发起CRUD预编译合约的调用。
该部分代码已合入到了WeBASE-Front master-3.0分支中,欢迎社区的伙伴们部署最新的WeBASE-Front v3.1.0进行体验。
开发者在体验时留意一下,此处更新的CRUD接口需要直接通过HTTP接口调用,具体方法为:使用WeBASE-Front的swagger进行调用,url为:/WeBASE-Front/swagger-ui.html#/precntauth_precompiled_controller/descTableUsingPOST
图3-节点前置中的CRUD接口列表
集合数十篇社区贡献的区块链教程
作为备受发者关注的区块链中间件,WeBASE一直秉承开放共享、多元包容的精神链接开源爱好者。在过往社区Task挑战赛中,众多开发者或是踊跃将自身在不同场景应用WeBASE的经验以技术教程形式贡献给社区,或者提交PR修复或优化WeBASE功能特性。本次更新,我们在WeBASE技术文档中新增“WeBASE社区文章”模块,将开发者贡献的数十篇教程归类呈现,以便社区用户可以按需查阅。
我们期待区块链技术爱好者和开源社区的伙伴们,一同参与共建,协力推动WeBASE向更完善、更友好的生态上发展。
图4-社区文章一览
“WeBASE技术文档社区文章”模块链接:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Console-Suit/articles/index.html
优化和修复
WeBASE应用管理SDK WeBASE-APP-SDK更新至 v1.5.6版本,同时支持WeBASE v1.x和v3.x版本的应用接入。
修复WeBASE v3.x版本应用管理接入时报错无法通过鉴权的问题, 开发者应用管理接入时需要对应使用webase-app-sdk v1.5.6及以上版本,更多详情可参考最新的WeBASE应用接入管理文档。
修复合约IDE使用solidity v0.6.10-gm时的版本判断为0.6.9版本的问题。
修复合约IDE中的地址参数长度判断。
即刻使用
上述优化及功能所涉及的最新代码和技术文档已同步更新,欢迎体验和star支持。如需咨询技术问题,欢迎本公众号对话框回复【小助手】进技术交流群。
WeBASE代码仓库:https://github.com/WeBankBlockchain/WeBASE/tree/master-3.0
WeBASE代码仓库国内镜像:https://gitee.com/WeBank/WeBASE/tree/master-3.0
WeBASE 技术文档:
https://webasedoc.readthedocs.io/zh_CN/lab
WeBASE 技术文档国内镜像:
https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/doc/lab/index.html
首次体验WeBASE,可参考一键部署文档:https://webasedoc.readthedocs.io/zh_CN/lab/docs/WeBASE/install.html
向我们报告问题,欢迎提交issue:
https://github.com/WeBankBlockchain/WeBASE/issues
相关文章:

开源进展 | WeBASE v3.1.0发布,新增多个实用特性
WeBASE是一个友好、功能丰富的区块链中间件平台,通过一系列通用功能组件和实用工具,助力社区开发者更快捷地与区块链进行交互。 目前WeBASE已更新迭代至v3.1.0版本,本次更新中,WeBASE带来了最新的合约Java脚手架导出功能ÿ…...
C++动态加载 插件
动态加载(Dynamic Loading)是指在程序运行时,根据需要动态地加载和链接代码或资源。 动态加载的主要目的是实现程序的灵活性和可扩展性,以及减少内存消耗和启动时间。通过动态加载,程序可以根据运行时的需求加载特定的…...

redis的缓存更新策略
目录 三种缓存更新策略 业务场景: 主动更新的三种实现 操作缓存和数据库时有三个问题 1.删除缓存还是更新缓存? 2.如何保证缓存与数据库的操作的同时成功或失败? 3.先操作缓存还是先操作数据库? 缓存更新策略的最佳实践方案&am…...

Android应用开发(6)TextView进阶用法
Android应用开发学习笔记——目录索引 本章介绍文本视图(TextView)的显示,包括:设置文本内容、设置文本大小、设置文本显示颜色。 一、设置TextView显示内容 Layout XML文件中设置 如:res/layout/activity_main.xm…...

Matlab滤波、频谱分析
Matlab滤波、频谱分析 滤波: 某目标信号是由5、15、30Hz正弦波混合而成的混合信号,现需要设计一个滤波器滤掉5、30Hz两种频率。 分析:显然我们应该设计一个带通滤波器,通带频率落在15Hz附近。 % 滤波 % 某目标信号是由5、15、3…...

车载软件架构 —— 车载软件入侵检测系统
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人…...
“深入解析JVM内部机制:理解Java虚拟机的工作原理“
标题:深入解析JVM内部机制:理解Java虚拟机的工作原理 摘要:本文将深入探讨Java虚拟机(JVM)的内部机制,解释其工作原理。我们将讨论JVM的组成部分、类加载过程、运行时数据区域以及垃圾回收机制。此外&…...

FPGA初步学习之串口发送模块【单字节和字符串的发送】
串口相关简介 UART 在发送或接收过程中的一帧数据由4部分组成,起始位、数据位、奇偶校验位和停止位,如图所示。其中,起始位标志着一帧数据的开始,停止位标志着一帧数据的结束,数据位是一帧数据中的有效数据。 通常用…...
Kotlin重点理解安全性
目录 一 Kotlin安全性1.1 可空类型1.2 安全调用运算符1.3 Elvis 运算符1.4 非空断言运算符1.5 安全类型转换1.6 延迟初始化 一 Kotlin安全性 Kotlin 在设计时采用了一系列策略,旨在尽可能地减少空指针异常(NullPointerException)的出现。空指…...

基于Java+SpringBoot+SpringCloud+Vue的智慧养老平台设计与实现(源码+LW+部署文档等)
博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...
Spring中的全局异常处理
在项目中通常会定义各种异常,比如断言异常、业务异常,甚至调用外部接口报的异常需要转成自己系统中的异常类型,这时就需要将各种异常类型进行统一的处理,返回统一的数据结构。在spring中提供了这样全局统一处理异常的注解Controll…...

【安全测试】Web应用安全之XSS跨站脚本攻击漏洞
目录 前言 XSS概念及分类 反射型XSS(非持久性XSS) 存储型XSS(持久型XSS) 如何测试XSS漏洞 方法一: 方法二: XSS漏洞修复 原则:不相信客户输入的数据 处理建议 资料获取方法 前言 以前都只是在各类文档中见到过XSS,也进…...

LeNet卷积神经网络-笔记
LeNet卷积神经网络-笔记 手写分析LeNet网三卷积运算和两池化加两全连接层计算分析 修正上图中H,W的计算公式为下面格式 基于paddle飞桨框架构建测试代码 #输出结果为: #[validation] accuracy/loss: 0.9530/0.1516 #这里准确率为95.3% #通过运行结果可以看出&am…...

使用XMLHttpRequest实现文件异步下载
1、问题描述 我想通过异步的方式实现下载文化,请求为post请求。一开始我打算用ajax。 $.ajax({type:post,contentType:application/json,url:http://xxx/downloadExcel,data:{data:JSON.stringify(<%oJsonResponse.JSONoutput()%>)},}).success(function(dat…...

Lombok 的安装与使用
文章目录 一、什么是 Lombok1.1 Lombok 的概念1.2 为什么使用 Lombok1.3 Lombok 的相关注解 二、Lombok 的安装2.1 引入依赖2.2 安装插件 三、Lombok 的使用案例四、Lombok 的原理 一、什么是 Lombok 1.1 Lombok 的概念 Lombok(“Project Lombok”)是一…...

springBean生命周期解析
本文基于Spring5.3.7 参考: kykangyuky Spring中bean的生命周期 阿斌Java之路 SpringBean的生命周期, 杨开振 JavaEE互联网轻量级框架整合开发 黑马程序员 JavaEE企业级应用开发教程 马士兵 Spring源码讲解 一. SpringBean生命周期流程图 二. 示例代码 …...

人工智能轨道交通行业周刊-第54期(2023.7.31-8.6)
本期关键词:BIM智能运维、铁水联运、编组站美容、鸿蒙4.0、LK-99完全悬浮 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界…...

Docker Compose 使用方法
目录 前言 安装 Docker Compose Ubuntu 安装与更新 Red Hat 安装与更新 验证是否安装 Docker Compose 创建 docker-compose.yml 文件 创建一个MySQL 与 tomcat 示例 使用Docker Compose启动服务 前言 Docker Compose 是一个工具,旨在帮助定义和 共享多容器…...

HTML 初
前言 HTML的基本骨架 HTML基本骨架是构建网页的最基本的结果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…...

IPv6地址分类,EUI-64转换规则
1、可聚合的单全球单播地址Global Unique Address: Aggregate global unicast address,前3位是001,即2000::/3,目前IANA已经将一部分可聚合全球单播进行了专门使用,如:2001::/16用于IPV6互联网,…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...