狗哥区块链与AI精品内容集@NonceGeek

2025年03月28日更新 75 人订阅
原价: ¥ 20 限时优惠
专栏简介 「造」最关键的是什么?| Hackathon 漫游指南(贰) Why Hackathon?| Hackathon 漫游指南(壹) 设计「众人维护」的 BuidlerBoard | BeWater.xyz Movement 白皮书中文版 Rebuidl RSS 生产因素与反生产因素 | 独立黑客创业手册(陆) 组织 | 独立黑客创业手册(伍) 生产 | 独立黑客创业手册(肆) 销售 | 独立黑客创业手册(叄) 最优先的能力 | 独立黑客创业手册(贰) 为什么从独立黑客开始 | 独立黑客创业手册(壹) Aptos Token Object V2 | Move dApp 极速入门(贰拾肆) 可編程交易塊 | Move dApp 極速入門(貳拾叁) Aptos 密鑰輪換 | Move dApp 極速入門(貳拾貳) Aptos 对象模型 | Move dApp 极速入门(贰拾壹) Aptos Moveflow SDK使用指南 | Move dApp 极速入门(贰拾) Sui 上简单 Swap 的实现 | Move dApp 极速入门(拾玖) 用 Elixir 交互 Aptos | Move dApp 极速入门(拾捌) Sui 链上数据查询 | Move dApp 极速入门(拾柒) SUI 合约测试攻略 | Move dApp 极速入门(拾陆) Sui 数据类型详解 | Move dApp 极速入门(拾伍) Airdropper Contract in Aptos | Move dApp 极速入门(拾肆) Sandwich合约源码解析 | Move dApp 极速入门(拾叁) Sui 极速上手 | Move dApp 极速入门(拾贰) scaffold-aptos 脚手架 | Move dApp 极速入门(拾壹) 对 DID Document 的思考 | Move dApp 极速入门(九) DID中地址聚合器的实现 | Move dApp 极速入门(八) 值的存取应用3.0 | Web3.0 dApp 开发(五) 合约数据类型综述 | Move dApp 极速入门(四) 操作资源 | Move dApp 极速入门(三) 第一个 Move dApp | Move dApp 极速入门(二) Hello Move | Move dApp极速入门(一) Staker | Web3.0 dApp 开发(九) Token 自动售卖机 | Web3.0 dApp 开发(七) SVG NFT 全面实践 | Web3.0 dApp 开发(六) 值的存取应用2.0 | Web3.0 dApp 开发(四) 值的存取应用1.0 | Web3.0 dApp开发(三) Scaffold-eth 快速上手 | Web3.0 dApp 开发(二) eth.build 快速上手 | Web3.0 dApp 开发(一) 1 小时理解比特币系统 【NonceGeek Workshop 0x01总结】基于链上数据生成游戏地图 Remix 完全本地化部署 NFT:实体与虚拟载体的主与辅 | 狗哥的元宇宙思辨(一) Web3Camp 内容大全@NonceGeek 用 Python 创建一条 Pow 区块链(上) 区块链与共识机制演变史 基于 Etherscan 实现 Blockchain Syncer 【论文分享】去中心化社会:寻找 Web3 的灵魂(上) 【论文分享】去中心化社会:寻找 Web3 的灵魂(下) Ted Yin | 2021 年的区块链基础设施将是什么? 0. 公链、联盟链与分布式未来(全文) 基于 Infura 与 Web3py 部署调用 Hello 合约全过程 | 以太坊开发极速入门 太上中的基因设计与Binary | 函数式与区块链(一) 理解以太坊合约数据读取过程 | 函数式与区块链(二) Hello, Ink! | 用 Rust 写智能合约(一) Mapping 数据结构 | 用 Rust 写智能合约(二) 用 Rust 程序和 Webase 交互 | Rust 学习笔记(四) 用 Sqlite 存储 WeId | Rust 学习笔记(五) 链上注册WeId与错误处理 | Rust 学习笔记(六) WeId 链上创建与本地存储的完整闭环 | Rust 学习笔记(七) 以太坊上的核心开发者 Austin | 以太坊上的最佳开发实践 1. FISCO BCOS 开发环境节点搭建全攻略 伪代码简述 ECDSA 签名过程 | 联盟链开发 WeIdentity 源码分析 | 狗哥解码 WeIdentity 源码分析 | 狗哥解码 FISCO BCOS 介绍 | 联盟链开发 给Remix升个级 | 联盟链开发 2. 控制台的安装与使用 3. 【实验】补全一个区块链应用 4. 控制台的Web化 5. Web化控制台2.0:打造团队共用区块链学习平台 6. 使用脚手架快速搭建 Java DApp 【视频+文字】分布式思维 Rebuidl RSS (EN)

4. 控制台的Web化

  • 李大狗
  • 发布于 2021-02-02 18:01
  • 阅读 5134

不用人人都搭建一遍环境了

前一讲中,我们讲到如何安装控制台。

这本讲中,一方面,笔者对上一讲的安装方式做一个补充说明;

另一方面,讲一下如何将控制台通过ttyd Web化,以供一个小组内的所有人共用。

1 补充说明:如何通过机构私钥生成SDK文件

FISCO BCOS中的各层级证书关系如下:

根证书     签发                  签发
CA.KEY  ------>  AGENCY.CRT  -------> NODE.CRT
CA.CRT           AGENCY.KEY  -------> NODE.KEY
                       |      签发
                       +------------> SDK.CRT
                       +------------> SDK.KEY

我们可以看到,SDK和NODE只是在名字上存在差异,因此,现在假设我们有Agency目录了:

agency
├── agency.crt
├── agency.key
├── agency.srl
├── ca.crt
└── cert.cnf

我们可以通过如下脚本来生成SDK文件夹:

./gen_node_cert.sh  -c ~/agency -o sdk

输出如下,则说明sdk文件夹生成成功了:

image-20210202172625885

我们调整下文件名和文件位置:

cd sdk
mv conf/ca.crt ./
mv conf/node.key sdk.key
mv conf/node.crt sdk.crt
rm -rf conf

我们就得到SDK文件夹啦。

2 如何把控制台Web化

2.1 安装 screen

首先安装screen,一个方便的窗口管理工具,可以让你执行的命令在关闭ssh连接后依然运行。

apt install screen

通过screen创建新窗口:

screen -S ttyd

2.2 安装 ttyd

ttyd是一个用C写的,小巧便捷的让命令行Web化的工具。

项目地址:

https://github.com/tsl0922/ttyd

Ubuntu下的 ttyd 安装方法:

sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
# 或走码云:git clone https://gitee.com/zhangzq/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install

2.3 Console Web化

执行下面命令:

ttyd -p 8080 bash /root/fisco/console/start.sh

然后访问8080端口,我们就可以愉快的在页面上看到控制台啦~

image-20210202174435323

2.4 通过NginX添加权限控制

还差最后一步。

因为控制台有区块链的访问权限,所以我们仅希望掌握密码的人才能访问。

一个最简单的实现方式是在NginX里加密码。

  1. 安装apache2-utils密码工具

    sudo apt-get install apache2-utils
  2. 添加用户名密码

    htpasswd -c /etc/nginx/.htpasswd [username-u-want]
  3. 在NginX目录下添加一个conf:

    cd /etc/nginx/sites-available
    vim console.conf

    填入如下内容:

    server {
    listen       80;
    server_name  default.com;
    location / {
       root   /var/www/html;
       index  index.htm index.html;
       auth_basic "Restricted";
       auth_basic_user_file /etc/nginx/.htpasswd;
       proxy_pass http://127.0.0.1:8080;
      }
    }

    这样80端口就加上权限控制并转发到8080了。

  4. 关闭8080端口

    最后,别忘了关闭8080端口,不然别人能直接不用密码访问了。


slogan.jpeg

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论