原创 golang toml解析

TOML 的全稱是 Tom’s Obvious, Minimal Language,因爲它的作者是 GitHub 聯合創始人 Tom Preston-Werner。 TOML 的目標是成爲一個極簡的配置文件格式。TOML 被設計成

原创 go判斷文件夾是否存在,並創建

go判斷文件夾是否存在,並創建 package main import ( "fmt" "os" ) // 判斷文件夾是否存在 func PathExists(path string) (bool, error

原创 golang flag示例

golang flag示例 golang flag 包是用來解析命令行參數的. package main import ( "flag" "fmt" ) func test_flag() { data_

原创 go操作redis的有序集合(zset)

go操作redis的有序集合(zset) package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { /

原创 區塊鏈從入門到放棄(區塊鏈入門彙總整理)

入門介紹與原理: 一、比特幣 1.比特幣白皮書 這是一切的開始 2.精通比特幣 講比特幣很詳細的一本書,看完基本對比特幣的認識就清楚了。 3.TheProof-of-Work Concept PoW機制理論介紹,英文

原创 比特幣入門

比特幣(bitcoin)誕生於2008年的一篇論文。 一個署名爲中本聰的人,提出了革命性的構想:讓我們創造一種不受政府或其他任何人控制的貨幣!這個想法堪稱瘋狂:一串數字,背後沒有任何資產支持,也沒有任何人負責,你把它當作錢付給對方,怎

原创 BitCoin對等節點發現協議

<<精通比特幣Mastering-BitCoin>> 第6章 比特幣網絡 新節點是怎樣加入網絡中的? 當建立一個或多個連接後,新節點將包含自身ip和addr的信息,發送給相鄰節點, 相鄰節點接收到信息後,再將此條addr信息

原创 BT原理分析

BitTorrent協議。 BT全名爲BitTorrent,是一個p2p軟件,你在下載download的同時,也在爲其他用戶提供上傳upload,因爲大家是“互相幫助”,所以不會隨着用戶數的增加而降低下載速度。 下面是一般用ftp

原创 go遍歷文件夾和文件

go遍歷文件夾和文件 package main import ( "fmt" "io/ioutil" "os" "strings" ) //獲取指定目錄下的所有文件和目錄 func GetFil

原创 分佈式一致性算法-Raft

我們知道Raft來源與Paxos,Paxos最早是由萊斯利·蘭伯特於1990提出。Paxos的大規模應用是在Google的廣告系統中。Raft可以看做是簡化版本的Paxos。 Raft動畫演示:(真心推薦) http://the

原创 go連接mysql,redis並完成日誌字符處理實例

go連接mysql,redis並完成日誌字符處理實例 package main // 引入所需包 import ( "compress/gzip" "fmt" "io/ioutil" "os"

原创 go 協程返回值處理

golang 協程返回值處理 package main import "fmt" import "sync" var ch = make(chan int) func do(lock *sync.Mutex, ct *int

原创 Go使現快速排序

go使現快速排序 package main /* Go實現快速排序算法 思路: 在數組中取出一個元素作爲基準值,把其它元素分爲兩組: “大的”是那些大於基準值的元素,“小的”是那些小於基準值的元素, 遞歸對這兩組做排序。 快排快速

原创 go連接mysql

go連接mysql package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main()

原创 Go實現二分法查找

Go實現二分法查找 package main /* Go實現二分法查找 二分法查找基實就是折半查找, 提前條件是數組爲有序數組 思路: 1. 確定中間位置k 2. 將要查找的值T與array[k]比較,若相等,則查找成功。 若ar