0%

4. BitTorrent协议

BitTorrent 使用”分布式哈希表”(DHT)来为无 tracker 的种子(torrents)存储 peer 之间的联系信息。这样每个 peer 都成了 tracker。这个协议基于 Kademila 网络并且在 UDP 上实现。

阅读全文 »

1.引言

平常我们高端用户都会用到BT工具来分享一些好玩的资源,例如ubuntu 13.04的ISO安装盘,一些好听的音乐等。这个时候我们会进入一个叫做P2P的网络,大家都在这个网络里互相传递数据,这种分布式的数据传输解决了HTTP、FTP等单一服务器的带宽压力。以往的BT工具(包括现在也有)在加入这个P2P网络的时候都需要借助一个叫Tracker的中心服务器,这个服务器是用来登记有哪些用户在请求哪些资源,然后让请求同一个资源的用户都集中在一起互相分享数据,形成的一个集群叫做Swarm。

阅读全文 »

1. 自动格式化和导入包

go fmt + go imports

go to preferences ->Tools ->File Watchers and enable go fmt . This way on each save it will format the file.

goland tools->filewatchers->go fmt| go imports

阅读全文 »

1. 基础概念

1.1 用户态和核心态

Linux系统中分为核心态(Kernel model)和用户态(User model),CPU会在两个model之间切换。

  • 核心态代码拥有完全的底层资源控制权限,可以执行任何CPU指令,访问任何内存地址,其占有的处理机是不允许被抢占的。内核态的指令包括:启动I/O,内存清零,修改程序状态字,设置时钟,允许/终止中断和停机。内核态的程序崩溃会导致PC停机。

  • 用户态是用户程序能够使用的指令,不能直接访问底层硬件和内存地址。用户态运行的程序必须委托系统调用来访问硬件和内存。用户态的指令包括:控制转移,算数运算,取数指令,访管指令(使用户程序从用户态陷入内核态)。

阅读全文 »

1. XSS (跨站脚本攻击,落在脚本)

XSS,即 Cross Site Script,中译是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而在安全领域叫做 XSS。

1
2
3
4
<script>alert('xss攻击开始')</script>
<script>alert('1')</script>
<script>alert('2')</script>
<script>alert('3"')</script>
阅读全文 »

1. http 介绍

1.1 method

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

阅读全文 »

  • 在mac上生成密钥

    生成两个文件vultr vultr.pub

    ssh-keygen -t rsa //passphrase可以为空

  • 发送到远程服务器

    第一种方式:

    scp ~/.ssh/vultr.pub root@207.246.80.69:/root/.ssh/authorized_keys

    第二种方式:

    ssh-copy-id -i ~/.ssh/vultr.pub root@207.246.80.69

阅读全文 »

通过ssh文件上传到服务器

1
scp -i /Users/liuwei/.ssh/aws.pem -C -r /Users/liuwei/golang/src/web ubuntu@ec2-54-191-9-26.us-west-2.compute.amazonaws.com:/home/ubuntu

aws.pem chmod 400

scp -C 加一个可能会更快

发行部署

Go 语言的应用最后编译之后是一个二进制文件,你只需要 copy 这个应用到服务器上,运行起来就行。beego 由于带有几个静态文件、配置文件、模板文件三个目录,所以用户部署的时候需要同时 copy 这三个目录到相应的部署应用之下,下面以我实际的应用部署为例:

阅读全文 »

区块链

区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝。

特点

跟传统的记账技术相比,其特点应该包括:

  • 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
  • 去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;
  • 通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。

基本原理

区块链的基本原理理解起来并不难。基本概念包括:

  • 交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;
  • 区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
  • 链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
阅读全文 »

音频基础

当前,我们所说的音频,都是数字音频。数字音频由采样频率、采样精度、声音通道数三个部分组成。

采样频率:既采样率,指记录声音时每秒的采样个数,它用赫兹(Hz)来表示。
采样精度:指记录声音的动态范围,它以位(Bit)为单位。
声音通道:既声道数(1-8个)。

采样率根据使用类型不同大概有以下几种(k既千位符号,1khz=1000hz):
8khz:电话等使用,对于记录人声已经足够使用。
22.05khz:广播使用频率。
44.1kb:音频CD。
48khz:DVD、数字电视中使用。
96khz-192khz:DVD-Audio、蓝光高清等使用。

采样精度常用范围为8bit-32bit,而CD中一般都使用16bit。

阅读全文 »