原创 節點軟件與客戶端

節點軟件是比特幣網絡的核心,因此在繼續下面的課程之前,我們先在1# 終端啓動節點軟件bitcoind: ~$ bitcoind 在1#終端按Ctrl+C就可以結束bitcoind的運行,或者在2#終端,使用 pkill命令結束: ~

原创 理解交易的結構

交易(Transaction)是比特幣的核心,它不僅是比特幣流轉的記錄,而且 比特幣本身也隱含在交易當中。下圖表示了兩個交易之間比特幣的流轉過程: 通常一個交易總是包含輸入(vin)和輸出(vout)兩個部分,其中的輸入 用來引用其他交

原创 比特幣協議與實現

從技術角度看,比特幣是一種數字加密貨幣協議,它僅僅約定了在比特幣網絡中 節點旳行爲規範,因此任何人都可以遵照此規範實現自己的比特幣節點軟件並接入 比特幣網絡。如果你希望深入瞭解比特幣協議,可以查看 這裏。 容易理解,在現有的諸多實現中,最

原创 比特幣轉賬交易

錢包有了餘額,我們就可以嘗試給其他地址轉比特幣了: 由於bitcoind內置了錢包模塊,轉賬交易變得非常簡單:只要調用 sendtoaddress 接口就可以向指定的地址發送比特幣了。 我們先使用getnewaddress調用來生成一個

原创 節點錢包

節點軟件bitcoind除了完整實現比特幣的核心協議,還包含了一個可選但是重要 的功能模塊 —— 錢包: 可以把錢包視爲保存着你所有密鑰與地址的保險箱,同時也封裝了比特幣很多 偏技術性的概念與細節,使其可以被極客之外的人羣所理解和接受。

原创 挖礦:交易確認與激勵

我們知道,比特幣是通過挖礦這種機制來保證分佈式環境下的節點一致性, 只有通過挖礦,交易才能在衆多節點之間達成共識並最終打包到區塊中上鍊。 在另一方面,挖礦也是比特幣系統的造幣機制,所有的比特幣都是通過各個 節點的挖礦出塊產生的,並且支付給

原创 區塊鏈結構

比特幣是一個專用數據庫,它只保存一種類型的數據記錄 —— 交易,例如 張三轉給李四幾個幣,或者李四轉給王五幾個幣: 一旦涉及到資金,大家都會變得慎重了。因此交易記錄最好在技術上可以保證 是不能篡改的,這樣出了問題可以翻翻老賬,這就要求賬

原创 什麼是比特幣

比特幣首先是一種數字加密貨幣,用戶可以通過比特幣網絡進行 比特幣轉賬或商品結算,就和傳統的貨幣一樣: 不過比特幣是基於密碼學技術的虛擬化貨幣,它沒有實體,僅僅 隱含在從發送方到接收方的交易中,接收方必須使用其持有的密鑰來 消費收到的比特

原创 去中心化機制

與當前流通的任何法幣都不同,比特幣是去中心化的,沒有一箇中央機構 來管理比特幣的發行與流通,因此比特幣網絡是一個典型的P2P網絡,在每個 (全)節點上都有完整的區塊鏈數據: 在這樣的分佈式計算環境下,如何保證新的交易在各個節點區塊鏈中得

原创 身份:密鑰與地址

比特幣的身份識別體系是建立在非對稱加密技術之上的去中心化系統, 每一個身份對應着一對密鑰。 非對稱加密採用一對密鑰(私鑰、公鑰)進行數據的加密或解密: 用私鑰加密,則需要用公鑰解密;用公鑰加密,則需要用私鑰解密。 這一非對稱特性使得其非常

原创 MySQL數據庫INNODB表損壞修復處理過程

突然收到MySQL報警,從庫的數據庫掛了,一直在不停的重啓,打開錯誤日誌,發現有張表壞了。innodb表損壞不能通過repair table 等修復myisam的命令操作。現在記錄下解決過程,下次遇到就不會這麼手忙腳亂了。 處理過程:  

原创 Map遍歷方式

關於java中遍歷map具體哪四種方式,請看下文詳解吧。 方式一 這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。 1 2 3 4 Map<Integer, Integer> map = new HashMa

原创 CentOS下Redis的安裝

CentOS下Redis的安裝 目錄 CentOS下Redis的安裝 前言 下載安裝包 解壓安裝包並安裝 啓動和停止Redis 啓動Redis 停止Redis 參考資料 CentOS下Redis的安裝 前言 安裝Redis需要知道自

原创 redis啓動持久化

redis的持久化有rdb和aof兩種。 rdb是記錄一段時間內的操作,一盤的配置是一段時間內操作超過多少次就持久化。 aof可以實現每次操作都持久化。 這裏我們使用aof。 配置方式,打開redis的配置文件。找到appendonly。

原创 觀察者模式

觀察者的痛點到底在哪裏呢?讓我們用購物來做例程,假設某件商品(水果手機)賣得非常火爆,長期處於脫銷的狀態。由於供不應求,師徒四人也加入了搶購的隊伍,不時的去商店詢問是否有貨,先看商店類代碼。   1public class Shop