docker基础入门教程(一) 发表于 2018-05-25 更新于 2024-05-11 分类于 2-linux系统 , docker 阅读次数: Valine: 本文字数: 18k 阅读时长 ≈ 17 分钟1. 基本概念1.1 镜像镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。阅读全文 »
golang的context包使用场景 发表于 2018-05-19 更新于 2024-05-11 分类于 1-编程语言 , golang , 4_golang实战 阅读次数: Valine: 本文字数: 3.1k 阅读时长 ≈ 3 分钟1. 介绍一个网络请求Request,每个Request都需要开启一个goroutine做一些事情,这些goroutine又可能会开启其他的goroutine。所以我们需要一种可以跟踪goroutine的方案,才可以达到控制他们的目的,这就是Go语言为我们提供的Context,称之为上下文非常贴切,它就是goroutine的上下文。阅读全文 »
golang和vscode的结合使用 发表于 2018-05-19 更新于 2025-03-15 分类于 1-编程语言 , golang , 3_golang杂项 阅读次数: Valine: 本文字数: 4.3k 阅读时长 ≈ 4 分钟0. 历史安装 vscode后的plugins:govscode-iconscode runnermarkdown preview githubmarkdown auto-openvscode snippets 模板文件: https://github.com/Microsoft/vscode-go/blob/master/snippets/go.jsontheme molokai 自带阅读全文 »
vim插件管理_vimrc配置 发表于 2018-05-15 更新于 2024-05-11 分类于 2-linux系统 , vim 阅读次数: Valine: 本文字数: 4.8k 阅读时长 ≈ 4 分钟1. vim-plug 安装1234curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim# 进入vim, :PlugInstall 执行安装命令阅读全文 »
dht分布式散列表和kad介绍 发表于 2018-05-14 更新于 2024-05-11 分类于 3-计算机系统 , bittorrent 阅读次数: Valine: 本文字数: 5.2k 阅读时长 ≈ 5 分钟1. 如何实现散列表在散列表这种数据结构中,会包含 N 个 bucket(桶)。对于某个具体的散列表,N(桶的数量)通常是【固定不变】的。于是可以对每个桶进行编号,从 0 到 N-1。“桶”是用来存储“键值对”的,你可以把它通俗理解成一个动态数组,里面可以存放【多个】“键值对”。当使用某个 key 进行查找,会先用某个散列函数计算这个 key 的散列值。得到散列值通常是一个整数,然后用散列值对 N(桶数)进行“取模”运算(除法求余数),就可以算出对应的桶编号。(注:取模运算是最常用的做法,但不是唯一的做法)阅读全文 »
Kademlia_DHT_KRPC_BitTorrent协议(二) 发表于 2018-05-13 更新于 2024-05-11 分类于 3-计算机系统 , bittorrent 阅读次数: Valine: 本文字数: 14k 阅读时长 ≈ 13 分钟4. BitTorrent协议BitTorrent 使用”分布式哈希表”(DHT)来为无 tracker 的种子(torrents)存储 peer 之间的联系信息。这样每个 peer 都成了 tracker。这个协议基于 Kademila 网络并且在 UDP 上实现。阅读全文 »
Kademlia_DHT_KRPC_BitTorrent协议(一) 发表于 2018-05-13 更新于 2025-03-15 分类于 3-计算机系统 , bittorrent 阅读次数: Valine: 本文字数: 16k 阅读时长 ≈ 15 分钟1.引言平常我们高端用户都会用到BT工具来分享一些好玩的资源,例如ubuntu 13.04的ISO安装盘,一些好听的音乐等。这个时候我们会进入一个叫做P2P的网络,大家都在这个网络里互相传递数据,这种分布式的数据传输解决了HTTP、FTP等单一服务器的带宽压力。以往的BT工具(包括现在也有)在加入这个P2P网络的时候都需要借助一个叫Tracker的中心服务器,这个服务器是用来登记有哪些用户在请求哪些资源,然后让请求同一个资源的用户都集中在一起互相分享数据,形成的一个集群叫做Swarm。阅读全文 »
golang_ide_goland使用 发表于 2018-05-10 更新于 2025-03-15 分类于 1-编程语言 , golang , 3_golang杂项 阅读次数: Valine: 本文字数: 1k 阅读时长 ≈ 1 分钟1. 操作1.1 自动格式化和导入包go fmt + go importsgo 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阅读全文 »
http的原理和技术 发表于 2018-04-07 更新于 2025-03-15 分类于 3-计算机系统 , http 阅读次数: Valine: 本文字数: 3.3k 阅读时长 ≈ 3 分钟1. http 基础1.1 methodHTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。阅读全文 »
常见web安全攻击介绍 发表于 2018-04-07 更新于 2024-05-11 分类于 3-计算机系统 , web 阅读次数: Valine: 本文字数: 4.3k 阅读时长 ≈ 4 分钟1. XSS (跨站脚本攻击,落在脚本)XSS,即 Cross Site Script,中译是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而在安全领域叫做 XSS。1234<script>alert('xss攻击开始')</script><script>alert('1')</script><script>alert('2')</script><script>alert('3"')</script>阅读全文 »