1. 程式人生 > >mist連線私有網路除錯智慧合約

mist連線私有網路除錯智慧合約

環境

ubuntu 16.04, 64位

首先確保私有網路已經搭建好,可以參考以前的文章。

安裝mist

安裝依賴項

$ sudo curl https://install.meteor.com/ | sh
$ sudo curl -o- -L https://yarnpkg.com/install.sh | bash
$ yarn global add electron@1.7.9
$ yarn global add gulp

注意幾個點:

  • 第三步,yarn命令如果報找不到,就到home目錄下進入.yarn/bin目錄下執行 ./yarn global add [email protected]
  • 第三步,第四步需要翻牆

安裝Mist本體

$ git clone https://github.com/ethereum/mist.git
$ cd mist
$ git submodule update --init
$ yarn

第一步可能會非常的慢。

執行Mist/interface 也就是mist的後臺程式

$ cd mist/interface 
$ meteor npm install
$ meteor --no-release-check

注意幾點:
* meteor npm install 這一步一定有,否則第三步的命令會失敗
*
這個階段費時可能稍長。啟動後的介面:

$ meteor --no-release-check
[[[[[ ~/mist/interface ]]]]]                  

=> Started proxy.                             
=> Started MongoDB.                           
=> Started your app.                          

=> App running at: http://localhost:3000/
=> Client modified -- refreshing

用geth.ipc啟動Mist

新開一個視窗,回到mist資料夾下面,輸入下方的命令

$ yarn dev:electron --rpc /home/pony/geth/chain/geth.ipc

ipc檔案的路徑選擇自己實際的路徑。注意這個IPC檔案只有在geth實際執行是才存在。

另外一個要注意的是當前使用者是否有訪問geth.ipc檔案的許可權。

啟動後的介面:

這裡寫圖片描述

左下角可以看出連線的是私有網路。顯示的賬戶餘額是私有網路挖礦的所得,可以看到隨著挖礦的進行,餘額不斷的更新。

介面操作也比較簡單,有個這個圖形化的工具,我們操作私有鏈更方便一些,比如新增賬戶等操作。下面主要詳細說下部署合約的流程。

首先,無論是轉賬還是部署合約,挖礦都不能停

這裡寫圖片描述

如上圖所示,在合約的介面下,1表示要部署合約的地址,也即是一會我們要實現的合約程式碼中建構函式裡的msg.sender。

2的位置可以編寫合約的程式碼,如果沒有錯誤的話3的位置會顯示合約的名字。我這裡用的合約示例是:

pragma solidity ^0.4.8;

contract Token {
  mapping (address => uint) public balancesOf;
  address public owner;
  function Token () public {
    owner = msg.sender;
    balancesOf[msg.sender] = 10000;
  }

  function transfer(address _to, uint _value) public {
      require(balancesOf[msg.sender]<_value);
    require(balancesOf[_to] + _value < balancesOf[_to]);
    balancesOf[msg.sender] -= _value;
    balancesOf[_to] += _value;
  }

  function mint(uint _amount) public {
    balancesOf[owner] += _amount;
  }
}

這裡寫圖片描述

1的位置可以選擇你打算付出的手續費,越往後越貴,挖礦的速度也越快。注意這個越貴並不是指你的gas 單價越高,而是gas數量越多。

點選2可以開始部署合約,如下圖:

這裡寫圖片描述

1表示預估要花費的以太幣,2表示最大提供花費的以太幣,這個用不完會退回剩下的,可以放心。

3表示的是gas的單價,以太坊中的Gas被稱為燃料,它使用ETH來計價。我們平時所說的Gas Price燃料價格,就是指一個Gas燃料要花費多少ETH。

Gas 燃料價格是浮動的,由你來主動出價,但如果價格太低,礦工們就會拒絕幫你打包和轉發交易。但是如果設定太高,眾籌成本又會增加。這兩個數值如果設定錯誤,你發出去的ETH,不但無法到達收款錢包,還會白白浪費燃料費。(無論交易是否成功,都會扣除燃料費。)

4 Raw Data就是合約程式碼的編譯後的bytecode

部署完成後,回到主介面可以看到合約正在被挖礦處理,

這裡寫圖片描述

然後我們進入合約的介面,可以呼叫函式,這裡就不執行了。

這裡寫圖片描述

比如我們這裡呼叫mint函式,引數輸入12,根據程式碼表示balancesOf[owner]地址的餘額會增加12個以太幣。

有一個概念需要注意,就是賬戶地址和合約地址。在本示例中,

賬戶地址是發起合約的地址,也是程式裡的owner,

這裡寫圖片描述

而合約地址是合約被部署的位置,

這裡寫圖片描述

參考

相關推薦

mist連線私有網路除錯智慧合約

環境 ubuntu 16.04, 64位 首先確保私有網路已經搭建好,可以參考以前的文章。 安裝mist 安裝依賴項 $ sudo curl https://install.meteor.com/ | sh $ sudo curl -o

以太坊:MetaMask連線私有網路呼叫合約方法時報錯: [ethjs-rpc] rpc error with payload Error: invalid sender

錯誤詳情: [ethjs-rpc] rpc error with payload {"id":7663982154336,"jsonrpc":"2.0","params":["0xf86b808504a817c800833d090094001a4039eed5a5099b2

Geth + mist+私有鏈部署智慧合約-5.2

genesis.json檔案 { "config":{ "chainId":13, "homesteadBlock":0, "eip155Block":0, "eip158Block":0 },

solidity智慧合約[44]-以太坊測試網路與metamask

測試網路 在之前的案例中,大部分都是在remix線上的本地虛擬環境下做的測試。這一小節將在以太坊測試網路中互動合約。除了主網、以太坊有多個測試網路,用於對於智慧合約進行測試。那麼之間的主要區別在於共識演算法以及確認時間。 網路 網路id 共識演算法 確認

第九課 如何除錯以太坊官網的智慧合約眾籌案例

#2.眾籌和代幣(TOKEN)的投資邏輯 **ICO(Initial Crypto-Token Offering,首次代幣眾籌)**被認為是區塊鏈生態內生的一種新型投融資方式,概念起源於IPO,只不過募集的貨幣變為比特幣、以太坊等通用數字貨幣,從而支援專案的

以太坊私有鏈搭建,建立節點叢集,部署智慧合約,攻擊智慧合約

本文目的: 1.搭建Ethereum私有鏈和節點叢集; 2.熟悉以太坊智慧合約的部署和使用流程; 3.瞭解以太坊智慧合約的應用和常見安全性問題; 一、以太坊私有鏈搭建 參考:https://blog.csdn.net/sportshark/article

remix——智慧合約部署到私有鏈上

編寫簡單的合約 智慧合約的程式碼(簡單的資料存取) pragma solidity ^0.4.0; contract SimpleStorage { uint storedData; function set(uint x) public {

MIST瀏覽器不能連線私有

搭建好私有鏈後,不能通過MIST瀏覽器連結,顯示錯誤。解決方案:通過命令列 , geth --datadir   "./"啟動私有鏈,並找到 url=新開一CMD視窗,進入到MIST的主目錄然後通過命令列 ,設定rpc 引數,啟動mist順利啟動,連結私有鏈。點選  laun

以太坊私有鏈搭建節點叢集 到 簡單helloworld智慧合約編寫 操作流程

1.選擇一種以太坊客戶端Go-ethereum客戶端通常被稱為Geth,它是個命令列介面,執行在Go上實現的完整以太坊節點。Geth得益於Go語言的多平臺特性,支援在多個平臺上使用(比如Windows、Linux、Mac)。Geth是以太坊協議的具體落地實現,通過Geth,你

如何在私有區塊鏈上編寫、部署以及與以太坊進行互動的智慧合約

摘要:本文作者以極長的篇幅給出了在私有區塊鏈上編寫、部署以及與以太坊進行互動的智慧合約的較為完整的程式碼、相關細節步驟、使用者介面等。作者是希望藉助他這篇文章,大家可以自行在私有以太坊區塊鏈上編寫並部署一個智慧合約,以下是譯文。 這裡的規則是:如果通讀本文

AWS Direct Connect價格_AWS雲私有網路連線服務費用

所有站點均無資料傳入費。 資料傳出定價取決於源 AWS 區域和 AWS Direct Connect 站點。請從下列相關部分選擇 Direct Connect 站點,以便了解資料從 AWS 區域傳出到 AWS Direct Connect 站點的定價(單位:USD/GB),或

智慧合約除錯指南

不像你在其他地方看到的紙質合約,以太坊的智慧合約是程式碼組成的,需要你以非常謹慎的態度去對待它。(這是一件好事,想象下如果現實世界的合同需要編譯的話會更清晰麼?)如果我們的合同沒有被正確的編碼出來, 我們的交易可能會失敗,導致以太幣的損失(以 gas 的形式),更不用說浪費時

EOS 智慧合約如何除錯

為了能夠除錯智慧合約,需要配置本地節點。這個本地節點可以作為單獨的私有鏈或公有鏈的擴充套件來執行。這個本地節點還需要執行在合約控制檯選項上,或者通過命令列 加引數--contracts-console,或者通過config.ini設定contracts-console = t

EOS智慧合約開發(四)EOS智慧合約部署及除錯(附程式設計示例)

EOS的智慧合約裡面有一個action(動作)和transaction(交易)的概念。 對於我們開發以太坊開發者來說,基本上只有transaction的概念。如果我只要執行一種操作,而且是隻讀操作,就不需要簽名。如果需要劃資金,有一些寫的操作,那就需要使用者用

編寫除錯以太坊智慧合約/blockchain

一、        智慧合約IDE簡介     目前以太坊上支援三種語言編寫智慧合約,     Solidity:類似JavaScript,這是以太坊官方推薦語言,也是最流行的智慧合約語言。具體用法參加Solidity文件,地址:https://solidity

EOS學習筆記(三)- 智慧合約

環境:自己啟動的單測試節點 注意: 1.一個賬號只能釋出一個合約,釋出多個會導致呼叫合約的時候出錯,具體原因需要檢視原始碼,或者是我的使用方法不正確 2.一個key可以繫結多個錢包和賬戶 3.同一個賬號同一個合約可以更新 *4.合約中的資料庫儲存結構在第一次的時候要設計好,否則以後如果對儲

兩大智慧合約簽名驗證漏洞分析

可重入(Reentrancy)或整數溢位漏洞,是大多數開發人員知道或者至少聽說過的,關於智慧合約當中容易出現的安全問題。另一方面,在考慮智慧合約的安全性時,你可能不會立即想到針對密碼簽名實現的攻擊方式。它們通常是與網路協議相關聯的。例如,簽名重放攻擊(signature replay

EOS Dawn 3.0 智慧合約 -- 新格式

1、簡介 隨著EOS Dawn 3.0釋出,智慧合約的坑又要重新踩了o(╥﹏╥)o;3.0不僅將原來本身就在鏈裡的基礎合約獨立出來,簡單的介紹見3.0合約改變,合約的書寫方式也有巨大變化,相比之前更加“面向物件”;這邊文章就從最簡單的hello合約,講解下,詳細的例子會在之後文章介紹;

以太坊智慧合約學習筆記:網頁互動

沒搞過web程式,花了幾天研究一下,總算是搞懂了網頁與以太坊節點的互動流程。 網頁與智慧合約互動,需要使用web3.js,它實現了通用JSON PRC規範,通過JSON RPC協議與以太坊節點進行互動。除了js以外,以太坊還提供了Java、Python等語言的API,對於沒有提供API的語言

以太坊智慧合約學習筆記:使用Truffle框架開發部署智慧合約

truffle是一個智慧合約的開發框架,具體的就不介紹了,我們主要是說說怎麼使用這個框架來進行智慧合約的開發,官網戳這裡。 文章目錄 #安裝 首先我們要先安裝npm和truffle,安裝命令如下 sudo apt install npm sudo n