docker-基本使用
安装
问题:connect: permission denied
当前用户添加到docker属组即可
sudo groupadd docker |
基本信息
Docker 是服务器—-客户端架构
本机需要有服务运行,如果没有运行使用下面命令启动
# service 命令的用法 |
container 本身也是个文件,停止运行不会删除,
# 列出本机正在运行的容器 |
查看容器信息
docker inspect containerID |
问题:connect: permission denied
当前用户添加到docker属组即可
sudo groupadd docker |
Docker 是服务器—-客户端架构
本机需要有服务运行,如果没有运行使用下面命令启动
# service 命令的用法 |
container 本身也是个文件,停止运行不会删除,
# 列出本机正在运行的容器 |
docker inspect containerID |
文件比较是最常用的功能了,beyondcompare 一直在用,下面了解一下 git 里面的源码比较
有三种格式:
正常格式(normal diff)
上下文格式(context diff)
合并格式(unified diff)
diff -y -W 50 -w --suppress-common-lines ./eostexas.abi ./eostexas.abibak |
“|”表示前后2个文件内容有不同
“<”表示后面文件比前面文件少了1行内容
“>”表示后面文件比前面文件多了1行内容
diff -Nrq a b |
现在都是这个格式的。 -u 表示 unified
diff -u f1 f2 |
变动的位置用两个@作为起首和结束。
@@ -1,7 +1,7 @@ |
前面的”-1,7”分成三个部分:减号表示第一个文件(即f1),”1”表示第1行,”7”表示连续7行。合在一起,就表示下面是第一个文件从第1行开始的连续7行。同样的,”+1,7”表示变动后,成为第二个文件从第1行开始的连续7行。
diff -ruaN oldfile newfile > patchfile.patch |
-r: 递归遍历子目录
-u: 使用合并格式输出
-a: 将所有文件视为文本文件
-N: 将未出现的文件视为空文件(比较目录时有用)
oldfile及newfile可以是一个目录,配合-r参数使用就会递归比较这两个目录。
-p1表示去掉第一层路径分隔符,即./,此时得到的old文件夹位于当前路径中,于是就可以正确的打补丁了。
不用 p1 会提示can't find file to patch at input
patch -p1 < ./commit.diff |
List特点:元素有放入顺序,元素可重复,支持for循环,也就是通过下标来遍历,也可以用迭代器
Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法,只能用迭代,因为他无序,无法用下标来取得想要的值。
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
Map适合储存键值对的数据
线程安全集合类
Vector,HashTable,StringBuffer
非线程安全集合类
LinkedList、ArrayList、HashSet,HashMap,StringBuilder
Makefile中的CFLAGS、CXXFLAGS、LDFLAGS、LIBS
CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。
CXXFLAGS表达上与CFLAGS相同。
CFLAGS用于C代码,CXXFLAGS用于C++代码
对C文件 CFLAGS 和 CPPFLAGS 效果相同,对C++文件就只识别 CPPFLAGS
make foo.o CPPFLAGS="-I/usr/include" |
LDFLAGS:用于指定库文件的位置。用法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。
LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread -liconv
有时候LDFLAGS指定-L虽然能让链接器找到库进行链接,但是运行时链接器却找不到这个库,如果要让软件运行时库文件的路径也得到扩展,那么我们需要增加这两个库给”-Wl,R”:
LDFLAGS =-L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib
如果在执行./configure以前设置环境变量export LDFLAGS=”-L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib” ,注意设置环境变量等号两边不可以有空格,而且要加上引号(shell的用法)。那么执行configure以后,Makefile将会设置这个选项,链接时会有这个参数,编译出来的可执行程序的库文件搜索路径就得到扩展了。
export LDFLAGS="-L/opt/openssl/lib -Wl,R/opt/openssl/lib" |
dpkg -s libboost-dev | grep 'Version' |
// 这里的东西可能需要,目前还没需要,这里为什么会有 libboost-all-dev 不确定 |
支持 thread 库编译
在下面文件中查找 TIME_UTC 修改为 TIME_UTC_ 防止冲突
boost_1_41_0/boost/thread/xtime.hpp |
找到下面文件 修改对应行 #ifdef __GLIBCXX__ // gcc 3.4 and greater: |
修改一个 GCC 错误提示
找到 unspecified_bool_type() 添加上面两行 |
编译
./bootstrap.sh |
astilectron 是一个Electron应用程序,通过TCP套接字提供API,允许执行Electron的方法以及捕获Electron的事件。
bitcoin mempool 是保存一些等待网络确认的交易的。每次交易广播到网络后需要平均 10 分钟左右的确认时间。
根据 mempool 里面交易的多少,等待时间可能会较长
每笔被网络校验过的交易都会放到 mempool 中,等待矿工的确认。当一个矿工验证一笔交易并且放入到区块中时,
会自动收到确认信息。
每个节点都有自己的 mempool 并且可以独立设置合适的大小。当一个新区块被广播时,每个节点从 mempool 中
移除掉已被确认的交易。
每个矿工根据手续费等条件排序处理未确认交易。 1M 的 mempool 说明没有积压。当 size 增大时,说明有交易处理积压了
func function_name( [parameter list] ) [return_types] { |
func swap(x, y string) (string, string) { |
支持给返回值命名后,实际上就是省略了变量的声明,return时无需写成return n,err 而是将直接将值返回
func ReadFull(r Reader, buf []byte) (n int, err error) { |
/* 定义交换值函数*/ |
下面两种方式
void myFunction(param [10]int) |
入参中,如果连续的参数类型一致,则可以省略连续多个参数的类型,只保留最后一个类型声明。
// 入参a和b均是float64数据类型 |
变参:入参支持变参,即可接受不确定数量的同一类型的参数
// 参数args是的slice,其元素类型为int 。经常使用的fmt.Printf就是一个接受任意个数参数的函数 |
func main(){ |
Go 语言支持匿名函数,可作为闭包。匿名函数是一个”内联”语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。
以下实例中,我们创建了函数 getSequence() ,返回另外一个函数。该函数的目的是在闭包中递增 i 变量,代码如下:
func getSequence() func() int { |
延迟执行,在声明时不会立即执行,而是在函数return后时按照后进先出的原则依次执行每一个defer。这样带来的好处是,能确保我们定义的函数能百分之百能够被执行到,这样就能做很多我们想做的事,如释放资源,清理数据,记录日志等
菊花性寒,阳虚慎喝。怕冷、脾胃虚寒的人应少喝。无论哪种菊花,性质都偏寒,一般阳虚体质(平时怕冷)和脾胃虚寒(一吃凉东西就胃痛、胃不舒服)的人不宜多饮。
菊花气味清香、凉爽舒适,味辛、甘、苦,微寒,归肺、肝经。
对体寒体虚的人来说,菊花茶中加些冰糖,能稍微减弱一下寒性,更加适合他们的体质
而对于体热体壮的人,加冰糖就会减弱菊花茶清热的功效。
平肝、清肝明目宜用白菊花,可用于头痛眩晕等症状
疏散风热宜用,可防治风热感冒
皇菊,又叫金丝皇菊,用它来泡茶,具有“香、甜、润”三大特点。
具有极高含量的黄酮素(有提高免疫力,降低血压等功效),还含有丰富的多种氨基酸,维生素以及微量元素。
金丝皇菊的功效主要是两方面:散风热、护目明目
菊花山楂茶
材料:金丝皇菊5克,山楂5克,金银花5克。
做法:加入金丝皇菊等三种材料,用沸水冲泡,10分钟后即可饮用。
作用:适用于肥胖症、高血脂以及高血压等的患者,能够化瘀消脂、清凉降压、减肥瘦身。
菊花枸杞茶
材料:适量的大皇菊和枸杞
做法:将金丝皇菊和枸杞置入茶壶中,用沸水冲泡,十分钟即可饮用。
作用:可以缓解眼睛疲劳或干涩,对于经常熬夜上班或者长期学习的人群十分有用。
三花茶
材料:少量的金丝皇菊、金银花和茉莉花。
做法:将三种材料置入茶壶之中,用沸水冲泡,等待十分钟后即可。
作用:对于风热感冒能够有预防和治疗的作用,还可以对咽喉肿痛等有效果,经常食用可以起到降火,静心凝神。
“分片”(Sharding)是以太坊为了解决扩容问题而设计的一种技术方案。
“分片”的大致设计思路是:将区块链网络中的每个区块变为一个子区块链,子区块链中可以容纳若干(目前为100个)打包了交易数据的Collation(大概可以称为“校验块”,为了在分片的情景中将其与区块的概念区分开),这些Collation最终组成一个在主链上区块;因为这些Collation是整体作为区块存在的,所以其数据必定是全部由某个特定的矿工所打包生成,本质上和现有协议中的区块没有区别,所以不再需要增加额外的网络确认。这样,每个区块的交易容量就大概扩大了100倍;而且这种设计还有利于未来的继续扩展,整个扩展计划目前也被大致分为4个阶段;
分片技术承诺通过改变网络验证的方式来增加吞吐量。分片技术独特于其他解决扩容的链上技术的关键特性,就是它可以进行水平扩容,也就是说,网络的吞吐量随着挖矿网络的扩展而增加。这种特殊的特性可能使它成为推动区块链技术被快速采用的理想技术。
分片技术是一种基于数据库分片传统概念的扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上。在公共区块链的情境中,网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。因此,每个节点只需处理一小部分传入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。因此,随着网络的增长,区块链处理越来越多的交易将成为可能。这种属性也称为水平扩容。
公共区块链平台今天面临的最大问题之一就是可扩展性。所有主流的平台都在努力提高每秒的交易量。事实上,当今的公共以太坊网络和比特币网络平均每秒可以处理7-10笔交易。这一数字远低于像Visa这样的集中支付处理器,后者平均每秒能处理约8000笔交易。