超越区块链1的核心体系
bbc1的Python项目详细描述
BBC-1核心系统(超越区块链1)
该项目是基于python的bbc-1参考实现,bbc-1是一个可信赖的区块链以外的记录保存系统。
设计文件(白皮书)和分析文件可在此处和此处.bbc-1的灵感来自比特币、以太坊、超账本项目等区块链技术。 bbc-1是一个简单但可靠的分布式账本系统,与庞大而复杂的现有区块链平台形成鲜明对比。 bbc-1的核心是事务数据结构和事务之间的关系,它形成了一个图形拓扑。 交易应该由交易的股东签署。bbc-1通过事务关系的拓扑结构和事务上的签名来实现数据的完整性和透明性。简单地说,bbc-1没有块,因此既不需要挖掘也不需要本机加密货币。 bbc-1既可用于私人/企业用途,也可用于公共用途。bbc-1有一个域的概念,用于确定数据管理的区域。任何网络实现(如用于p2p拓扑管理的kademlia)都可以应用于每个域。 尽管bbc-1中有许多todo,但是这个参考实现包含了bbc-1的大部分概念,并且可以在私有/企业系统中工作。当复杂的p2p算法准备就绪时,bbc-1将能够支持公共用例。
这个库中的源代码是bbc-1的一个平台,bbc_core.py是核心节点的主要进程。 bbc-1的api在bbc_app.py和bbclib.py中定义。所以应用程序开发人员应该将它们导入到你的应用程序中。 要构建bbc-1系统,需要在主机中安装bbc1包,并且需要在上运行bbc_core.py 每个主机。为了配置bbc-1网络,可以使用utils/目录中的实用程序。它们是一种 为您开发自己的管理工具。
有关详细信息,请阅读docs/目录中的文档。不仅有文档,还有幻灯片(pdf)解释了bbc-1的设计及其实现。
故障排除
通过pip安装bbc1有时会因为pip缓存问题而失败。在libbbcsig构建过程中终止安装过程时,可能会发生这种情况。 这会导致libbbcsig模块的pip缓存出现缺陷,并导致永远无法安装。
要解决此问题,需要在不使用缓存的情况下删除pip缓存或pip安装。下面将解释如何解决此问题。
解决方案1
删除pip缓存目录是解决此问题的基本方法。各种操作系统平台的缓存目录如下:
- Linux和Unix
- ~/.cache/pip
MaOS
- ~/library/caches/pip
- %localappdata%\pip\cache
删除缓存目录后,再次安装py bbclib module。
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
解决方案2
禁用缓存并重新安装模块是另一种解决方案,这是一种更简单的方法。
python3 -mvenv venv . venv/bin/activate pip --no-cache-dir install -I py-bbclib
数据库元数据的最新变化BLE
在v1.3的更新中,db的元表被更新以支持基于时间戳的搜索。事务数据本身的主表保持不变,因此只需更新元表就可以进行迁移。 迁移工具由utils/db_migration_tool.py提供。下面介绍如何迁移。
迁移步骤1
如果使用pip bbc1模块,请通过pip命令安装新模块。然后,停止旧的bbc_core.py进程,开始新的进程。 当新的bbc_core.py启动时,dbs的元表会自动升级。
迁移步骤2
通过指定目标工作目录运行db_migration_tool.py。如果使用PIP模块,可以按如下方式直接调用该工具:
db_migration_tool.py -w 'working_dir'
您将看到该工具正在升级记录。 在高事务率的情况下,某些记录可能保持不变。在这种情况下,请重新运行该工具。
注意,您必须对每个工作目录执行步骤1和2,因为进程读取工作目录中的配置文件并升级配置中指定的数据库。
文档
有些文档在docs/中提供
- 政策、设计和分析
- 如何使用_bbc1_v1.0.2_ja.pdf
- bbc1_core_tutorial_installation_ja.md
- 如何在_nat_environment.md中使用_
- libbbcsig_dll_build_windows_x64_ja.md
- 程序设计
- API引用(即将发布。当前,生成文档时出错)
- https://bbc-1.readthedocs.io/en/latest/
- 您可以通过以下命令读取本地主机中的api文档:
cd docs/api/_build/html pipenv run python -m http.server
环境
巨蟒
- python 3.5.0或更高版本
- 建议使用Virtualenv
python-mvenv
- 在某些环境中,pipenv不起作用。
- 安装脚本中似乎存在一些错误。所以,现在请不要使用pipenv。
自制MacOS工具
brew install libtool automake python3 pip3 install virtualenv
Linux工具(Ubuntu16.04 LTS,18.04 LTS)
sudo apt-get update sudo apt-get install -y git tzdata openssh-server python3 python3-dev python3-pip python3-venv libffi-dev net-tools autoconf automake libtool libssl-dev make
快速启动
来自github中的源代码
安装开发工具(libtool、automake)
安装python和pip
克隆此项目
在根目录中准备基于openssl的库
sh prepare.sh
按以下方式安装依赖项ing命令(对于python 3.6)
python -mvenv venv source venv/bin/activate pip install -r requirements.txt
在终端上启动bbc_core.py
cd core python bbc_core.py
在另一个终端上启动一个示例应用程序(最初应该在bbc1/top目录下)
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
0 < > >- 安装开发工具(libtool、automake)
- 安装python和pip
- 通过PIP安装BBC1
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
1 < > > - 在主机上安装Docker
- 克隆此项目
- 建立Docker镜像
如果你想把源代码放在你的容器里,
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
2 或者,如果你只是想用bbc-1,python3 -mvenv venv . venv/bin/activate pip install py-bbclib
3 - 运行Docker容器
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
4 - 登录到容器
python3 -mvenv venv . venv/bin/activate pip install py-bbclib
5 或python3 -mvenv venv . venv/bin/activate pip install py-bbclib
6 初始密码为"bbc1"。 < > > - BBC1/核心/
- BBC-1的核心功能
UL> UTILS/
- BBC-1系统配置实用程序
- 实例/
- bbc-1上的示例应用程序
码头工人/
- Docker环境
- pytest的测试代码
- DOCS/
- 关于bbc-1及其参考实现的文档
- 某处/.bbc1/
- bbc_core.py的默认工作目录名
- 需求.txt
- 需要python模块
- setup.py
- 清单.in
- 准备.py
- 用于创建python模块
- 准备.sh
- 设置脚本
使用pip
使用docker(参见docker/中的readme.md)
工作目录
docker容器上bbc-1的工作目录挂载在docker/data/.bbc1/上。您将在工作目录中找到配置文件、分类数据库和文件存储目录。