布萌区块链底层技术介绍,看完就能搭私链

2023-11-01

布萌是做什么的?

布萌是一个使用区块链技术搭建的数字资产网络,任何拥有资产的机构/个人都可以在这个网络上发行自己的数字资产(例如数字黄金、积分、游戏装备等),资产在网络中可以自由兑换和流通。

链上资产的交易流通将不依赖于任何中心化系统,因为服务器和节点由布萌社区众多成员共同部署和维护,应用产生的数据通过共识机制会存储在区块链所有节点上,单一机构对于自身节点数据的修改无法通过其他节点数据验证,从而保障了数字的真实性,确保用户的数字权利“真正”属于用户。

开发者注册地址:https://www.bumeng.cn/user/register

布萌的底层技术简介

布萌以布比区块链为技术底层(源码地址可在布萌官网查看),有以下特点:

λ 去中心化
采用P2P分布式存储,没有中心化的管理节点,可根据实际需求配置若干个验证节点,所有的验证节点具备相同的权利,整个系统的数据块由所有验证节点来共同维护。
λ 安全
数据经过验证节点之间达成共识然后添加至区块链,一旦添加至区块链就会永久存储而且不可篡改,单个节点对数据的修改是无效的。
λ 高效
通过优化数据结构,关键路径多线程并发,多机分布式计算hash,异步写入数据库等方法,使得性能明显提高,普通PC节点可以达3000TPS。集群节点性能更高。
λ 开放
通过公开的API可查询区块链数据,也可根据实际需求修改布比区块链源码。
λ 可移植
使用标准C++开发,支持windows,linux等各种平台。

布萌的底层技术架构

支持分布式部署,以满足高性能,高可靠需求。每个节点至少需要有一个bubi node,即一个bubi进程和一个SQL数据库组成。Bubi node支持横向扩展,以满足高可靠需求。Slave cluster为可选组件,用来分担bubi node的计算,支持动态扩展。Big data mining 为可选组件,可做大数据分析和挖掘。
可参考如下部署图:
这里写图片描述

Balance server 为可选服务,这取决于用户以何种方式使用bubi底层服务。 Reserve proxy或Endpoint map是为了将底层服务部署到广域网。如果部署在云平台,需要在控制台做端口映射即可。 如果部署到自建服务器上,需要在网关做端口映射或部署一个反向代理服务。

布萌的系统交互

布比底层提供了多种接口,提交交易接口推荐使用SDK方式,这种提交为异步提交,结果会分阶段的通知给应用,比如CONFIRM,PENDING,COMPLETE或者FAILURE。另外可以使用WEB接口提交至bubi 或者slave。 查询请求只能发送到bubi进程。图中的PUB,SUB是ZMQ中的发布订阅模式,PUSH,PULL为任务模式,可以清晰的看到bubi,slave,sdk,monitor之间的通信方式。 Monitor与监控中心采用websocket模式,有利于实时告警。
这里写图片描述

系统模块

下图描述了bubi和slave内部的主要模块,以及重点模块间的交互。黄色的模块中含有线程,灰色的为外部持久化文件。为了提高性能,减少交易峰值时IO对性能的影响,设计上考虑了异步写入数据库的功能。蓝色为SDK或者使用者,与bubi通信采用web和MQ两种方式。
这里写图片描述

交易流程

下图描述了交易的处理流程。slave不是必须的,如果没有slave,bubi会自己做验签工作。
这里写图片描述

编译

Build on Ubuntu 14.04

λ 安装依赖
sudo apt-get install automake autoconf libtool g++ cmake libidn11-dev
手动安装oracle jdk
λ 编译./configure make
λ 一键编译
进入build/linux目录,执行build.sh

Build on Windows with VS2013

使用vs2013打开项目文件 build/win32/bubi.vs12.sln 编译

测试

λ 在test目录下的4peers-without-slave_test.sh 和4peers-with-slave_test.sh,分别用 于部署四个节点带slave和不带slave的测试。带slave的节点配置文件位于test/env/4peers-with-slave/peeri-with-slave目录下,不带slave的节点配置文件位于test/env/4peers-without-slave/peeri-without-slave目录下,i是节点标记1到4。

λ 以test/env/4peers-with-slave/peer1-with-slave目录为例:

bin 存放可执行文件

confg 存放配置文件,bubi.json 是bubi的配置文件,slave.json 是slave的配置文件,可根据实际情况修改配置。bubi.json中db的用户名密码配置需与postgresql安装时设置一致

log 默认存放日志文件,可以在bubi.json中配置

data 默认存放key-value db数据文件,可在bubi.json中配置

执行test/4peers-without-slave_test.sh启动四个节点不带slave

执行test/4peers-with-slave_test.sh启动四个节点带slave

以上是布萌区块链底层技术的架构及功能介绍,想要了解更多,可以到布萌官网www.bumeng.cn注册开发者账号。注册后,可在测试链体验区块链服务,或者上正式链发行资产。由于底层技术已开源,也可用于搭建私链。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

布萌区块链底层技术介绍,看完就能搭私链 的相关文章

  • 一个网工(网络工程师)七年的职业血泪史....

    前言 一个工作了七年的老网工 上家公司待了五年 现在这家公司也快三年了 分享一些我自己学习网络安全路上的一些经历 也算是帮大家少走些弯路 一 如何学习网络安全 1 不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全 一般
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1
  • 【网络安全】——区块链安全和共识机制

    区块链安全和共识机制 摘要 区块链技术作为一种分布式去中心化的技术 在无需第三方的情况下 使得未建立信任的交易双方可以达成交易 因此 区块链技术近年来也在金融 医疗 能源等多个行业得到了快速发展 然而 区块链为无信任的网络提供保障的同时 也
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全

随机推荐

  • 基于 SpringMvc + OpenCV 实现的答题卡识别系统(附源码)

    java opencv 项目介绍 OpenCV是一个基于BSD许可 开源 发行的跨平台计算机视觉库 它提供了一系列图像处理和计算机视觉方面很多通用算法 是研究图像处理技术的一个很不错的工具 最初开始接触是2016年因为公司项目需要 但是当时
  • AlertDialog全屏显示的问题

    有时候 我们需要直接显示全屏的dialog 平常的时候会有一圈边框 不好看 第一步 编写style 第二步 在使用的时候带入 最简单的全屏就这么完成了 简单不 咩哈哈哈哈哈哈哈
  • Python入门实战题目

    1 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 2 两个乒乓球队进行比赛 各出三人 甲队为a b c三人 乙队为x y z三人 已抽签决定比赛名单 有人向队员打听比赛的名单 a说他不和x比 c说他不和x z比
  • Python3 [爬虫实战] Redis+Flask 动态维护cookies池(上)

    Redis 使用 1 首先去官网下载Reidszip文件 http www redis cn topics config html 2 Reids的安装 直接解压缩zip文件 然后放在一个文件夹中 在文件夹路径下用dos窗口启动服务器端 r
  • 入门算法题002

    题目 给你一个正整数n 假设有两个质数加起来等于n 问一共有多少组这样的质数 思路 1 我们得要先有一个函数去判断是否是质数 2 循环拆解为两个数 暴力拆解 试下10 15分钟内做出来 public class Leecode002 pub
  • selenium爬虫运行慢如何解决?

    Selenium作为一个强大的自动化工具 可用于编写爬虫程序 尽管Selenium在处理动态网页上非常强大 但对于静态网页爬简单数据提取 使用轻量级库或工具可能更加上所述 Selenium作为一个灵活可定动化工具 在需要模拟用户行为 处理动
  • VS2005中分页和多列排序

    最近在使用ASP net 2 0的GridView 控件时 发现排序与分页功能Microsoft实现的都很简单 比如排序 在点击列名的时候来触发整页的PostBack 然后排序 但是在列头上没有一个显示升序降序的图标 这会让最终用户使用时很
  • OJ在线编程常见输入输出练习(11题)

    1 输入包括两个正整数a b 1 lt a b lt 10 9 输入数据包括多组 输出描述 输出a b的结果 输入例子1 1 5 10 20 输出例子1 6 30 import java io BufferedReader import j
  • java web 项目配置日志框架log4j

    第一步 log4j 框架所关联的第三方jar 文件 commons logging xxx jar log4j xxx jar slf4j api xxx jar slf4j log4j12 xxx jar 以下是我搭建web框架集成log
  • 【C++】“没有可用成员”问题的原因之一

    今天碰到一个定义类成员函数的时候一直提示没有可用成员的问题 琢磨半天终于解决 记录一下 以免再犯 问题描述 在头文件中声明了名称空间SALES 并在名称空间中声明了类Sales 在类中声明了一系列类成员后 切换到另一个cpp文件中定义相关的
  • 基于CIFAR100的VGG网络结构详解

    基于CIFAR100的VGG网络详解 码字不易 点赞收藏 1 数据集概况 1 1 CIFAR100 cifar100包含20个大类 共100类 train集50000张图片 test集10000张图片 CIFAR100下载地址 http w
  • QTday3(QT实现文件对话框保存操作、实现键盘触发事件【WASD控制小球的移动】)

    1 实现文件对话框保存操作 include widget h include ui widget h Widget Widget QWidget parent QWidget parent ui new Ui Widget ui gt se
  • Unity3d 在HDRP项目中更换天空球

    两种情况 首先是直接通过unityhub创建的HDRP工程中 选中Sky and Fog Volume 进行如下图中标注的操作即可 其次是旧工程中 看到此教程说明你已经将旧工程升级到新的渲染管线工程 就略过升级旧工程的步骤直接开始配置天空盒
  • iptables 查看相关命令

    参考 https www zsythink net archives 1493 一些命令的总结 1 查看对应表的所有规则 t 指定要操作的表 省略 t 表名时 默认表示操作filter 表 L 表示列出规则 即查看规则 iptables t
  • 分治法求最近点对问题

    目录 蛮力法 分治法 探究分治规模小于一定程度时采用暴力解法 蛮力法 算法思想 蛮力法 顾名思义 即穷举所有点与点之间的距离 两层循环暴力找出最近点对 算法执行可视化如图1所示 word文档GIF静态显示 附件已含动图 图1 伪代码 mat
  • Vscode 代码插件 Code Runner,一键运行代码

    Vscode 代码插件 Code Runner 一键运行代码 为了方便可以安装代码运行插件进行简单化运行 不用终端运行 Code Runner插件 一键运行代码 支持40多种语言 安装这种插件后面 可以鼠标放到代码文件上面 点击鼠标右键有个
  • Linux三种修改打开文件数量限制的方法

    系统环境 Centos7 为什么要限制打开文件的数量 因为操作系统需要内存来管理每个文件 所以可以打开的文件数可能会受到限制 由于程序也可以关闭文件处理程序 它可以创建任意大小的文件 直到所有可用磁盘空间都已满为止 在这种情况下 安全性的一
  • 华为OD机试 - 字符串反转(C++ & Java & JS & Python)

    目录 描述 输入描述 输出描述 示例1 Java C python 描述 接受一个只包含小写字母的字符串 然后输出该字符串反转后的字符串 字符串长度不超过1000
  • QT接入聊天机器人(OpenAI)

    QT接入聊天机器人 OpenAI 下面的是引用的中国日报对chatgpt的描述 中国日报网2月17日电 综合外媒报道 近段时间来 由美国人工智能公司OpenAI推出的大语言模型ChatGPT在全球科技界和产业界刮起了一场 旋风 数据显示 自
  • 布萌区块链底层技术介绍,看完就能搭私链

    布萌是做什么的 布萌是一个使用区块链技术搭建的数字资产网络 任何拥有资产的机构 个人都可以在这个网络上发行自己的数字资产 例如数字黄金 积分 游戏装备等 资产在网络中可以自由兑换和流通 链上资产的交易流通将不依赖于任何中心化系统 因为服务器