Lyperledger Fabric笔记 - Ubuntu Kylin 14 部署fabric 1.4.3

2023-10-27

https://www.htcp.net/3766.html
丢一连接,配环境累死个人。
好的,我活着来了。终于配完了,期间几多辛酸那。
预警!非教程,仅仅作个人笔记用
信息不全,报错信息也不全,只是记录一下自己踩的一些坑。

  • 第一次配置

一、系统配置

Ubuntu Kylin 14.04.6
Docker 18.06.3-ce
Docker compose 1.23.2
Go go1.14.2 linux/amd64
注意:Docker-compose 与 Docker的版本需要兼容才行,
不然会报错(见下)

二、准备工作

1.下载Ubuntu(X
其他版本都可,不要太低就行
官网应该有版本要求吧 建议仔细阅读,不然就会像我一样踩坑致死
我的版本见上

2.下载Go
注意!版本有要求,好像在14还是11以上才行!建议仔细阅读官网文档,不然就像我一样痛苦吧
记得配置环境变量。
我还遇到了一个问题,我的Ubuntu很多命令都要sudo,但是sudo go version 显示commond not found,此时需要配置sudo用户下的环境变量,root权限时同理。

修改/etc/profile文件配置变量
分别是GOROOT和GOPATH,我的机器默认下载在/usr/local/下,因人而异,注意看
建议多看博客,仅供参考(我查了好多才配上的 lay
go的安装配置
(1)先从官网下载版本对应的包,然后解压(名字是你自己的包名字)
tar -C /usr/local -zxvf go1.14.1.linux-amd64.tar.gz
(2)mkdir -p ~/go/src 创建目录
(3)自己建一个gopath目录,以后的hyperledger fabric就在这个目录里运行辣
我的就叫gopath
根据你的path修改环境变量

export GOROOT=/usr/local/go
export PATH=$PATH:GOROOT/bin      (我不确定是否这样写了,抱歉,请看推荐链接吧)
export GOPATH=/你的path

go env检查环境变量
(4)自己运行go version看一下,然后进入你的自命名gopath目录,尝试着运行一个go文件“Hello, world”
看看有没有输出。
在这里插入图片描述
3.下载Docker
这篇部署完整版,讲得极好,可以说我是照着他做的,建议直接去看这篇
新增docker报错
进程占用问题
(1)sudo apt-get remove docker docker-engine docker.io containerd runc
保险卸载旧版本
(2)sudo apt-get update
更新

*刚刚接触Linux
这个命令的意思也了解了一下
Ubuntu系统维护了一个源列表,其中存储着所有常用工具的来源。
当执行这条命令时,会更新这个源,读取软件列表,保存在本地。

*常常与sudo apt-get upgrade配合食用,提示软件更新

(3)运行

sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common

连接远程库
(4)一系列操作,请看推荐的链接,详细

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
   
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

(5)查看是否安装成功
docker version
*后续操作,要求显示Server与Client的信息
sudo chmod -R 777 /var/run/docker.sock
我执行了这条命令授权成功

*都走到这里了,确定不配一下镜像站么?

真的!!后续需要使用,因为我没有VPN,所以拉取源码和镜像非常痛苦。
幸亏有了阿里云!和DocCloud镜像站(阿里云打钱)

*配置镜像加速

请看

i.阿里云镜像教程
ii.DocCloud-官网

操作都很简单,我这里阿里云很快!嗖嗖得
有几个下不下来,去DocCloud下的,换着下,美滋滋

5.下载Docker-compose
不知为何,pip install命令不可用,我猜是被墙了?
(1)官网–极慢,慢到怀疑人生,不建议

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(2)方案2 - 其他网站(好评

curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
sudo chmod +x /usr/local/bin/docker-compose
  • Ubuntu下载curl工具
    *报错 : curl工具无默认支持https协议:手动安装openssl
    建议openssl和curl下载同时进行,不然装了又要卸载curl,很麻烦
    再加上我的网极慢,痛苦。

openssl的配置

ok的标志,我配了好久
在这里插入图片描述

(3)授权
sudo chmod +x /usr/local/bin/docker-compose
(4)查看版本信息
docker-compose --version
有信息就可了

三、Fabric源码下载 &镜像拉取

很慢很慢很慢
恭喜你走到了这一步,比我强多了,我可是倒腾了两天才配好环境的
由于我的网极慢,不采用官网的./bootstrap.sh
完全无法使用,极慢

1.fabric下载
. 在gopath里建好目录
我的结构是这样的
建到hyperledger就好了在这里插入图片描述
拉取源码
*避雷,如果不动,请不要傻傻等待
赶快百度找其他的办法

cd ~/go/src/github.com/hyperledger
进入目录,开始下载
git clone https://github.com/hyperledger/fabric.git

2.下载fabric镜像惹(区块链网络的各个东西,背书节点、排序节点等等)
进入fabric看看,是不是有很多文件
cd scripts
运行命令:
git checkout v1.4.3
设置版本是1.4.3
(1)如果你的网很猛 并且拥有VPN,建议尝试 ./bootstrap.sh
一劳永逸
进入下一环节 四 叭

(2)如果你像我一样心如死灰,那就乖乖手动拉取
我们需要的镜像整理如下
!注意版本,版本不对会GG
在这里插入图片描述
在这里插入图片描述
不知道自己有没有多下,敬请dalao们指正!谢谢

嗖嗖得,不行就换镜像站咯

(3)了解一下./bootstrap做了啥?为啥这么慢?
bootstrap在做啥?

它做了三件事

  • 检查有无fabric-samples,没有就下载
  • 下载编译运行网络用到的二进制文件
  • 拉镜像(就是上面手动拉取的那些)

其中就是二进制文件这一步非常的慢,因为是外网吧好像,samples我们有了,二进制文件我们自己编译就好了,不用拉取。

我试着注释掉二进制文件的下载和samples的下载运行了这个脚本,检查了镜像有没有漏掉,结果显示镜像是ok的哈。

3.自己补上编译工具
进入go/src/github.com/hyperledger/fabric/common/tools目录
看到三个工具configtxgen 、cryptogen 、configtxlator的文件夹。
分别进入这三个文件夹中,运行
go install命令
如果无报错,去看你gopath目录下的bin
,如果多了三个工具的文件,就okk啦

在这里插入图片描述

四、运行first-network

1.把上面生成的三个文件copy

到/hyperledger/fabric/scripts/fabric-samples/first-network/scripts中
看到dalao是把sample拖出来的,但是我好像下错了版本,自己下的没用,会报错
(!务必注意镜像版本和fabric版本一致啊,不然会报错的)
所以直接用它生成的了
在这里插入图片描述
2.开始了
(请记住
./byfn.sh -m generate
./byfn.sh -m up
./byfn.sh down
三件套)

./byfn.sh -m generate
期间输入Y
没报错就okk
*报错的话,
如果显示缺少工具,exiting,那就是没有生成的编译工具,copy一下到这个目录;

如果error 与 gopath相关,也许是go路径不行
或是sudo环境下没用go指令;

其他:我也不太清楚了
可能与版本不匹配有关 建议重新
切换版本: git checkout release-1.4.3
(该源代码当前目录下)

*网上也有make release自编译的方法,但我不成功,每次都报与gopath的错误,does not exist这样(FROM GOPATH &GOROOT什么的)

*我一开始从网上其他地方下了
在这里插入图片描述
这个东西,也是1.4.3,虽然能够成功generate,但是up的时候最后会在最后询问的时候报错,没用查到相关的内容,只好放弃了
建议使用自己生成的samples文件,因为都在不停的更新,很可能fabric-samples-1.4.3旧版本有问题了。

./byfn.sh up
输入Y,你的网络开始干活了
(1)在这里插入图片描述

开始前先会显示出docker 容器里的镜像
(2)
在这里插入图片描述
开始了,请注意报错信息 or 终端显示的信息
如果没错,会按顺序部署执行
(3)
在这里插入图片描述
出现这个,就!!!非常愉快的结束了!!
!!!!!
恭喜!

报错也不要紧,百度一下,都会解决的
我真的报错了很多次。。
*反复报错重来的时候记得使用./byfn.sh down清空
否则会有奇怪的错误
比如
Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?
解决docker问题;

又比如
Cannot run peer because cannot init crypto, folder “/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp” does not exist

请down掉它;

*Chaincode instantiation on PEER2 on channel ‘mychannel’ failed !
参见
我是这个问题,docker-compose版本不兼容(我是太低了,重装就ok了,真是奇怪。)
所以要注意版本鸭!

*其他问题请百度,我无能为力了 对不起
请参考:
官方答疑
fabric报错集合1
交易报错
fabric报错集合2

*<p>Error: could not assemble transaction, err proposal response was not successful, error code 500, msg timeout expired while starting chaincode bankmaster:6.0 for transaction

我遇到了,我先后尝试了
重装docker镜像,重设git v1.4.3版本,gopath检查,暂时未查清,对不起,我太菜了

*docker ps
可查看容器,网络关闭后会自动删除
可以看看到哪里停止的,有没有成功建起容器(名字特别长的就是了,会有名称显示)

docker images
查看自己的镜像

*其实环境没问题的话,我觉得还是可能是版本的问题叭

*一切有Permission Denied问题的命令,可以尝试sudo 或root权限
建议后期操作(从拉镜像那开始)在root权限进行,可节省麻烦

*其他乱七八糟的报错
重装docker-compose时候遇到的内容
Text file busy-请杀死这个进程

五、到此为止啦,鞠躬

进行愉快的测试
查询和修改的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 第二次配置-环境不变
    Ububntu虚拟机在非正常关机后文件系统损坏了,据说是VMware的问题,怪我一时冲动删除了虚拟机,没有尝试恢复。
    首先尝试了最新的fabric2.1和fabric2.1,但是都失败了,
    报错在最后的Org2 Query时候不能成功安装链码,显示docker build failed,猜测是docker 镜像的问题?
    Org1 链码安装处也有报错,这个报错在网上可以找到,是由于GOlang设置中的GOPROXY在国内无法访问的原因,可以使用go env查看,重新定向到国内代理即可。
    由于网上找不到要的信息,于是决定还是试一下v1.4.3。
  1. git checkout v1.4.3
    git branch -a (查看所有分支与当前所在的分支)
  2. 删除多余的docker镜像,重新拉取对应版本的镜像(见上)
  3. 二进制文件 自己编译
    ! 这里我好像没有编译出来,使用了v2.1的二进制文件
    运行网络还是成功了,= _ =
    怀疑是我的/usr/local/bin中或gopath/bin中已经含有了2.1的二进制文件的缘故。
    编译 : 在fabric文件夹下 make release即可
  4. 运行网络,成功!
    确实很意外…

唉

  • 第三次配置
    (1)panic: unable to bootstrap orderer. Error reading genesis block file: read /var/hyperledger/orderer/orderer.genesis.block: is a directory
    出现以上错误:
    genesis.block没有删除干净或【docker 容器未删除完毕】
    感觉byfn.sh down是个玄学阿?明明运行了删除命令,却没有删除干净,所以我自己又补了一个删除,终于删除完毕了。

(2)Ubuntu虚拟机又裂开了,还好,存了快照(快照真是伟大的发明!!
重新回到可以成功运行的那一版,可以还是不行? 怎么回事嘞
msg error starting container: error starting container: Failed to generate platform-specific docker
"/opt/go/pkg/tool/linux_amd64/link: (截取了某些零碎的片段)
大意是这个文件里的内容中断了docker 容器的build,并杀死了它。
Why? 诡异啊

i. 百度一下,查到了相关的fabric错误都是有关于Failed to generate platform-specific docker build的解决方案,有说是因为ccenv版本的原因,试着重新pull了ccenv,还是报同样的错误。
ii. 心情复杂,睡了一觉起来仔细看看报错内容,这个文件夹和fabric没啥关系啊?是系统的文件夹?
查找相关的文件夹报错,终于找到了问题,
没想到一篇k8s部署的文章帮助了我orz
关于部署k8s 1.12
其中提到了类似的文件夹报错:/usr/local/go/pkg/tool/linux_amd64/link: signal: killed
而文中又提到:(图片非原创,见链接,懒人截图法)
懒人选择截图
仔细想想这个网络在做实验课之前是可以使用的,而上实验课使用了docker容器,装了一个服务和image,container,会不会是docker的运行内存不足导致的呢?
于是试着清理了docker未运行的容器,好家伙, 2.3个G。在这里插入图片描述
清理,只运行了最简单的
docker system prune
命令,去除了没有被使用的容器而已
深度清理见(没有亲测!慎重! 我不是非常了解linux只知道误删非常麻烦,所以没敢再动了)
docker清理垃圾

重新运行./byfn.sh up,竟然成功了!!!!!!!开心


这对心理素质真是一种考验,唉

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

Lyperledger Fabric笔记 - Ubuntu Kylin 14 部署fabric 1.4.3 的相关文章

  • TTS

    FastSpeech 基于 Transformer 的前馈网络 用于并行生成 TTS 梅尔谱图 FastSpeech 模型与自回归 Transformer TTS 相比 梅尔谱图生成速度加快了 270 倍 端到端语音合成速度加快了 38 倍
  • 【电商专享】聚划算活动海量商品一键报名,省时省力!

    电商专享 聚划算活动海量商品一键秒参与 省时省力 本机器人支持自动登录淘宝账号 输入密码并智能通过验证 将根据表格内容自动填写商品信息完成聚划算活动报名 并支持多款商品上传
  • 又是沙雕的一天-------关于错误关掉任务管理器之后出现的开机黑屏的解决

    沙雕经过 肝了一下午的实验 然后脑子十分不清醒的我 看着自己电脑上N多的窗口 默默的任务栏 gt 右键 gt 任务管理器 gt 任务管理器 gt 结束任务 然后华丽丽的让电脑黑屏了 想起社团大佬的教诲 默默的强制关机 好使 接着登陆界面出现
  • C++11:std::move和std::forward

    标准库函数 std move 既然编译器只对右值引用才能调用转移构造函数和转移赋值函数 而所有的命名对象都只能是左值引用 如果已知一个命名对象不再被使用而想对他调用转移构造函数和转移赋值函数 也就是把一个左值引用当做右值引用来使用 怎么做呢
  • 异步通信起始位正确检测的VHDL实现

    异步通信起始位正确检测的VHDL实现
  • apache做反向代理服务器

    http yahoon blog 51cto com 13184 162922 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http yahoon blog 51cto com 13
  • 游戏开发unity杂项知识系列:unity可以使用的小技巧

    插眼 总结 个人觉得这些技巧都挺实用的 参考 Unity3d 提升开发效率的小技巧 第一集 哔哩哔哩 bilibili 一共有五集 这是第一集
  • vue项目中获取今天,昨天,明天时间方法

    在项目中有这个需求 就是在时间查询条件了中 需要默认前天的时间 如果你项目中需要使用今天 昨天 明天时间方法同样适用 具体方法如下 1 vue调用说明 比如我是需要前天的时间 this getDay 2 这个是不包括时分秒的 更多例子如下
  • springMVC中两种validation的简单使用

    本文转自 http elf8848 iteye com blog 1299587 Spring 基于注释的校验机制 1 支持JSR303 Bean Validation定义的校验规范 2 支持Spring框架定义的Validator接口定义
  • 首批!八家大模型企业面向全民开放

    Datawhale干货 开放 国产大模型 编辑 司玉鑫 前 言 在科技领域 一项重要的消息引起了广泛关注 8月31日凌晨 首批大模型产品终于获得了正式批准 这一消息不仅令行业内的巨头企业欢欣鼓舞 也使创业公司和科研院校感到振奋 这些获得批准
  • Oracle (内连接)与(外连接)区别

    表t user1 t user2 t user3 各有id name两列 id name 1 10A 2 20A id name 1 10B 3 30B id name 1 10C 4 40C 连接分为两种 内连接与外连接 A 内连接 内连
  • 高版本IAR打开低版本编译的程序出现的问题

    山外KEA程序一打开就出现这个 The project file vcan Kinetis ewp is in an old format Would you like to convert it for use with this ver
  • keil MDK之RTX的消息邮箱的API函数

    一 RTX消息邮箱的API函数 RTX消息邮箱的API函数总共有8个 如下图 下面就将几个这里要用到的函数 1 os mbx declare函数原型 define os mbx declare name Name of the mailbo
  • 深度可分离卷积及其代码实现

    深度可分离卷积 depthwise separable conv 一共两步 第一步先进行逐通道卷积 Depthwise Convolution 第二步进行 逐点卷积 Pointwise Convolution 普通卷积 输入是三个通道 输出
  • acrobat页面显示问题

    最近对着电脑的时间比以前多太多了 每天都用Acrobat看pdf 千万别告诉我你用Adobe Reader 为了保护眼睛 需要更改下页面显示 一 背景颜色 经常对着电脑看文档的人 需要修改下背景颜色 通常默认的背景色都是白色的 阅读时间短倒
  • 【Nginx】常用配置

    一 问题 1 1 环境 电脑环境 Windows 10 开发工具 IntelliJ IDEA 数据库环境 Redis 3 2 100 JDK环境 Jdk1 8 1 2 问题 Nginx 基本配置是什么 二 解答 1 配置 2 检测 3 启动
  • 毕业设计题目

    旅游社交系统 基于Web的学校教室租赁系统 学校在线二手交易平台 基于移动平台的轻博客系统开发 基于web的IT技术论坛 基于Java EE新闻管理系统的设计与实现 网上员工考试培训系统 基于JAVA JSP SSH WEB的简单邮件系统设
  • C++数组

    数组是有序的元素序列 长像 int a 5 1 2 3 4 5 数组名单独使用 等同于指向数组内存首地址的指针 也就是数组名可以当指针使用 Over
  • DedeCMS内容页受统计影响打开速度慢的解决方法

    织梦DedeCMS网站被挂马后解决方案 DedeCMS内容页受统计影响打开速度慢的解决方法 Dedecms文章内容页受统计影响打开速度较慢的解决方法 dedecms文章内容页加载统计的时候会有卡住停顿 如果网速慢干脆就停止下边网页的加载 D

随机推荐

  • [转]基于NXP i.MX8QM的QNX之汽车数位仪表板方案

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 email 174176320 qq com 基于NXP i MX
  • Unity——IK动画契合匹配初体验

    学到siki学院的动画系统那一章节的IK动画Siki 顺便作点笔记 1 什么是IK IK Inverse Kinematics 即反向动力学 即可以使用场景中的各种物体来控制和影响角色身体部位的运动 一般来说骨骼动画都是传统的从父节点到子节
  • 夜神模拟器如何进入adb

    夜神模拟器如何进入adb 进入夜神模拟器得安装路径 我这里是这个路径 D moniqi Nox bin 然后打开cmd 执行adb connect 127 0 0 1 62001 然后再执行命令adb devices 显示这个内容就说明连接
  • java基础 —— 高级编程篇

    java基础 高级编程篇 多线程 基本概念 线程的创建和使用 Thread类 创建 多 线程 线程的调度 线程的分类 线程的生命周期 线程同步 同步机制 死锁 死锁处理方法 线程通信 生产者 消费者问题 java常用类 String类 St
  • ROS navigation调试基础(实现真实机器人导航)

    最近使用了一下ROS中非常经典的导航包navigation 并通过自己的激光雷达以及相机里程计驱动了自己的小车在室内进行简单的定位以及导航 在此记录一下以免后期忘记 1 导航包安装 ROS中navigation导航包可以通过GitHub上下
  • Nacos控制台下线服务报错

    Nacos控制台下线服务报错 现象 在 Nacos控制台服务列表 点击下线按钮 Nacos控制台报错 提示错误信息 naming instance metadata did not find the Leader node 原因 Nacos
  • maven项目编译时报错org.junit包不存在解决办法

    在用idea快速搭建项目的时候 生成的pom xml文件里面对junit的依赖是 junit junit 4 11 test 在进行编译的时候 maven项目报错org junit包不存在 解决方法是将 test 这一行注释掉 测试用例记得
  • LLVM是什么

    有什么说的不对的地方 还请多多支出 谢谢 概述 LLVM 全称是这个Low Level Virtual Machine 底层虚拟机 名字是带有虚拟机 但是现在早已和虚拟机没有任何关系了 是整个LLVM项目 我目前了解的有5部分 LLVM 是
  • Echarts实现图形重新绘制方法总结

    1 业务需求 vue项目使用Echarts进行数据看板绘制 当数据发生改变时 需要重新进行图形绘制 2 解决方案 目前网上流传的方法 myChart setOption option true 亲测无效 因此重找了资料找到了解决方法 Ech
  • Windows系统下安装Metasploit

    Windows系统下安装Metasploit metasploit介绍 metasploit是一款开源的安全漏洞检测工具 里面含有海量的漏洞供大家直接使用 当然 你也可以自己去扩展漏洞库 下载软件包 下载地址 https windows m
  • 原生js写画布

    html部分
  • 【网安自学】XSS漏洞防御

    一 XSS漏洞的产生很大原因是 程序没有经过过滤或者过滤的敏感字符不严密就直接输出或写入数据库 导致一些别有用心的人通过构造巧妙的脚本恶意代码来实施攻击 二 根据漏洞产生的原因 防御XSS漏洞的方法就是对敏感字符进行转义和过滤 方法一 ht
  • 用Python探索性数据分析和数据可视化:从真实世界数据集中学习基础技能!

    以下是探索电子商务销售记录数据洞见的示例 涵盖了使用Matplotlib和Seaborn创建多种图表形式 随着互联网的发展以及消费者购物行为的改变 电子商务已经成为现代商业中不可或缺的组成部分 对于电子商务公司而言 深入分析销售数据可以帮助
  • 你真的了解websocket吗?(websock原理详解)

    什么是websocket WebSocket是在2008年6月诞生 2011年由IEFT标准化为RFC 6455 WebSocket是一种在单个TCP连接上进行全双工通信的协议 使得客户端和服务器之间的数据交换变得更加简单 并允许服务端主动
  • android 网络请求参数排序

    在网络开发过程中客户端跟服务器经常遇到各种各样的验证方式 参数排序就是常见的方法之一 按照参数的首字母升序或者降序 参数少的话可以主观的排序就行了 但是参数多的时候肯定不能这么干了 下面介绍几个方法 0 以Key进行排序 第一种 直接声明T
  • 【uniapp】scroll-view 实现自动滚动到最底部

    在做uniapp项目中 有个滚动视图组件scroll view 跟微信小程序里的组件一样的 想要实现自动滚动到最底部 是一件容易忽略的 小事情 文章目录 问题呈现 解决方案 注意事项 问题呈现 官网uniapp文档上说可以控制滚动条 并没有
  • 基于STM32F103ZET6核心板控制HX711(称重传感器带屏蔽)

    目的 使用核心板控制传感器 实现串口打印数据 硬件要求 1 gt stm32f103zet6核心板 2 gt HX711 带屏蔽 HX711有好几款板子 我这里使用的是带屏蔽的板子 只要知道引脚的功能什么板子都是一样的 HX711原理图 管
  • Tomcat & Servlet入门学习

    web相关概念回顾 1 软件架构 1 C S 客户端 服务器端 2 B S 浏览器 服务器端 2 资源分类 1 静态资源 所有用户访问后 得到的结果都是一样的 称为静态资源 静态资源可以直接被浏览器解析 如 html css JavaScr
  • B1094 谷歌的招聘 (20 分)

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个
  • Lyperledger Fabric笔记 - Ubuntu Kylin 14 部署fabric 1.4.3

    https www htcp net 3766 html 丢一连接 配环境累死个人 好的 我活着来了 终于配完了 期间几多辛酸那 预警 非教程 仅仅作个人笔记用 信息不全 报错信息也不全 只是记录一下自己踩的一些坑 第一次配置 一 系统配置