# 北大数瑞介绍

## 什么是北大数瑞?

北大数瑞是面向大数据场景的数据资源、IoT资源、云资源的管理、调度平台。BDContract是一个可信计算框架，计算逻辑以智能合约的方式表达。通过”随机“和”冗余计算“的方式实现智能合约的可信执行。BDContract在保证智能合约的可用性、可靠性的同时，着重提升执行效率和安全性。

## 特点

1. 支持多种执行模式，权衡可用性、可靠性、正确性和效率。

2. 接入各种数据源。

3. 支持合约的细粒度监测。

4. 支持合约的状态。

5. 访问控制。

6. 支撑跨语言调用。

## 使用开源项目说明

BDWare项目站在了许多巨人的肩膀上，感谢这些开源项目。

本项目的智能合约后端使用了以下开源库。

名称 | Licence类型 | 说明
--- | --- | ---
Project Nashorn | GPLv2 | 使用了该项目的编译器，可以将js函数编译为java字节码
ASM OW2 | BSD with attribution | 基于asm的TreeAPI与VisitorAPI实现合约的静态分析框架
Netty | Apache License 2.0 | 使用netty作为Http/Websocket的服务端
gRPC | Apache License 2.0 | 使用gRPC与BDWareLedger通讯
RocksDB | GPLv2 | 后台数据库
ANTLR | BSD | 对合约脚本的词法分析与语法分析
SM2Java | 无 | 国密SM2 Java语言实现

本项目的智能合约前端使用了以下开源库。

名称 | Licence类型 | 说明
--- | --- | ---
Bootstrap | MIT | 前端的排版、样式
jQuery | MIT | 用于操作DOM的javascript库
jQueryUI | MIT | 前端UI构件库
DataTables | MIT | 表格样式
CodeMirror | MIT | 代码编辑框样式
eCharts | ApacheV2 | 统计图表
sm-crypto | MIT | 国密SM2 javascript语言实现

本项目的文档使用Sphinx生成，感谢readthedocs提供文档样式。