QuikNode -Infura高配版

隨着Web3的演化,開發者已經開始在以太坊區塊鏈上快速開發去中心化應用。雖然 在以太坊上開發dApp很酷,可是要搭建本身的以太坊節點仍是挺使人頭疼的一件事, 這須要不短的時間,並且還須要一些技巧。QuikNode 經過提供高性能的以太坊節點服務解決了這一問題,正如其官網所說,這是運行專用以太坊節點的最快、最簡單的 方法php

區塊鏈開發課程精選

一、爲何要使用QuikNode?

搭建你本身的以太坊節點很是繁瑣,存在如下問題:前端

  • 佔空間:區塊鏈是分佈式帳本,一個全節點意味着你須要帳本的完整拷貝。這已經不太可能 使用家用計算機來完成全節點的同步了,由於目前以太坊區塊鏈的數據大約有670GB, 即便快速同步模式也須要120GB。
  • 耗時:取決於你的網速,第一次同步以太坊主網數據可能須要好幾天的時間
  • 技能要求:最使人擔憂的仍是節點的安全問題。你須要一些網絡安全技能來保護你的節點。

二、QuikNode可以提供什麼服務?

QuikNode經過直接 提供全節點來解決這一問題,這聽起來相似於Infura,但不一樣的是QuikNode 提供給你的是專用節點,而不是共享的公共節點。QuikNode進行了性能、速度和靈活性的 優化。讓咱們看看QuikNode是如何實現這一點的。java

  • 專用節點

使用專用節點幫助你得到更好的區塊鏈訪問性能,由於它只接受你的dApp的調用。node

  • 多區域

QuikNode支持8個不一樣的區域,這有助於優化網絡調用時間,從而提升你的DApp的速度和性能。python

  • 多測試網支持

QuikNode支持幾乎全部流行的以太坊測試網,這使得開發者在測試網的選擇上有了充分的靈活性, 能夠在本身喜歡的測試網上進行Dapp的測試。android

  • 歸檔節點

QuikNode同時也提供Parity歸檔節點。一個歸檔節點將保存區塊鏈帳本的完整拷貝,而全節點則 可能因爲磁盤空間的問題進行剪枝處理。對於區塊鏈分析和研究業務來說這是很是重要的特性。程序員

另外,QuikNode同時支持Geth和Parity,你能夠根據本身的喜愛來自由選擇。web

三、註冊QuikNode帳號

要使用QuikNode的服務,須要首先點擊這裏 註冊一個帳號,別忘了保存你的用戶名和密碼,由於須要這些信息來訪問你的QuikNode節點 以及集成的Web錢包(QWallet)。一旦完成了註冊,就能夠配置你的節點。你能夠選擇網絡、區域、客戶端 以及同步模式。你會看到你的節點的連接URL(相似下面這個),記得保存下來:mongodb

https://quiknode.io/node/86d9e35e-8cdb-47ad-80a4-84f9e9537afa/A-cU-9vjaepXeR6qPC8eOg==

一旦登陸進QuikNode網站,你能夠看到相似下圖這樣的儀表盤:npm

四、鏈接QuikNode節點

我已經建立了一個Kovan測試網,選擇的區域是印度班加羅爾。記住,你的節點應當是就緒(READY)狀態, 不然就沒法正常工做。若是不是就緒狀態的話,你能夠重建節點,若是有問題的話能夠聯繫QuikNode團隊。

QuikNode同時支持HTTPProvider和WebSockets,咱們下面能夠看到這一點。你能夠在Dev Tools選項下找到 這些連接URL:

如今讓咱們深刻代碼。

五、使用web3js和QuikNode發送以太坊交易

讓咱們測試下QuikNode來看看它是如何工做的。首先,咱們用web3js經過QuikNode廣播一個裸交易:

5.1 配置web3使用QuikNode節點

讓咱們建立一個node.js項目並安裝web3js包。建立項目目錄而後運行下面的命令:

~$ mkdir quiknode
~/quiknode$ cd quiknode
~/quiknode$ npm init
~/quiknode$ npm install web3

接下來讓咱們建立一個Index.js文件並安裝web3。正如你看到的,咱們使用QuikNode 的HttpProvider鏈接來 接入咱們的節點,並訪問Kovan鏈:

const Web3 = require('web3')
const httpProvider = "https://mistakenly-smart-jay.quiknode.io/86d9e35e-8cdb-47ad-80a4-84f9e9537afa/C0_tKUunhUc0rM_i1HMxHA==/"
var web3 = new Web3(new Web3.providers.HttpProvider(httpProvider));

而後添加以下的代碼來測試網絡並檢查網絡ID,kovan的網絡ID是42:

web3.eth.net.getId(function(err, data){
  console.log(data);
})

5.2 建立一個帳號

如今讓咱們在KOVan網絡上建立一個以太坊帳號:

var addressData =web3.eth.accounts.create(web3.utils.randomHex(32));
console.log(addressData);

這將會獲得一個私鑰和地址,咱們將使用這個私鑰來建立裸交易。

首先看一下帳號的餘額:

web3.eth.getBalance('0x75E18d32f2DbEEfaF4055aD709BDe98eCB57C379', (err, wei) => {
  balance = web3.utils.fromWei(wei, 'ether')
  console.log(balance);
});

5.3 簽名以太坊交易

讓咱們使用Kovan鏈的Faucet獲取一些測試鏈的以太幣, 而後進行交易的簽名。你能夠建立一個新地址做爲收款方,或者使用Kovan區塊瀏覽器中 的任何地址:

web3.eth.accounts.signTransaction({
    from: address, // our address 
    to: address2, // any other kovan network address you want to send 
    value: '2000000000000000',
    gas: '8000000'
}, privateKey, function(err, data) {
    console.log(data);
});

5.4 發送交易

如今讓咱們使用QuikNode廣播簽名的交易:

web3.eth.accounts.signTransaction({
    from: address,
    to: address2,
    value: '2000000000000000',
    gas: '8000000'
}, privateKey, function(err, data) {
    web3.eth.sendSignedTransaction(data.rawTransaction, function(err, receipt) {
        console.log("receipt", receipt);
        web3.eth.getTransaction(receipt, function(err, data) {
            console.log("transaction", data);
        })
    });
});

咱們已經成功地經過QuikNode在Kovan鏈上發送了一個交易,你能夠在Kovan鏈區塊瀏覽器上 查看這個交易。

六、使用QuikNode的WebSockets鏈接

QuikNode也支持WebSockets。你能夠在Dev Tools選項下找到webSockets鏈接的URL。或者 你也能夠很使用HTTPs Auth或Token Auth。Token auth連接看起來像下面這樣:

- Token auth: wss://mistakenly-smart-jay.quiknode.io/86d9e35e-8cdb-47ad-80a4-84f9e9537afa/C0_tKUunhUc0rM_i1HMxHA==/

WebSockets在任什麼時候刻都容許服務端和客戶端同時推送消息,這與HTTP每次請求都須要創建與 服務端的鏈接。WebSocket鏈接只須要建立一次,而後服務端和客戶端就能夠在這個鏈接上 推送消息了。對於基於事件的系統而言,websockets是最合適的選擇,幾乎全部的瀏覽器都支持 websockets。

  • 訂閱待定交易事件

讓咱們看看如何訂閱以太坊區塊鏈上的待定交易。你能夠看到咱們在初始化web3時傳入了QuikNode的WebSocket鏈接URI:

const Web3 = require('web3')
const webSocket = "wss://mistakenly-smart-jay.quiknode.io/86d9e35e-8cdb-47ad-80a4-84f9e9537afa/C0_tKUunhUc0rM_i1HMxHA==/"
var web3 = new Web3(webSocket);
var subscription = web3.eth.subscribe('pendingTransactions', function(error, result) {
        if (!error)
            console.log(result);
    })
    .on("data", function(transaction) {
        console.log(transaction);
    });

七、在Truffle中使用QuikNode

讓咱們看看如何在Truffle中使用QuikNode來部署智能合約。爲此咱們先下載Truffle的petshop示例代碼, 咱們直接拉取petshop模板而後使用QuikNode部署:

~/petshop$ truffle unbox pet-shop

咱們將使用truffle-HD-wallet來部署咱們的pet-shop智能合約。所以你須要同時安裝這個NPM包:

~/petshop$ npm install truffle-hdwallet-provider

如今讓咱們看看Truffle的配置文件。咱們只須要以下添加QuikNode的HttpProvider鏈接URI:

var HDWalletProvider = require("truffle-hdwallet-provider");
var mnemonic = "YOUR_MEMONICS"; // use a funded wallet
module.exports = {
    networks: {
        development: {
            host: "127.0.0.1",
            port: 7545,
            network_id: "*" // Match any network id
        },
        kovan: {
            provider: function() {
                return new HDWalletProvider(mnemonic, "https://mistakenly-smart-jay.quiknode.io/86d9e35e-8cdb-47ad-80a4-84f9e9537afa/C0_tKUunhUc0rM_i1HMxHA==/")
            },
            network_id: 42
        }
    }
};

八、QuikNode的統計功能

如今讓咱們看一下QuikNode的統計功能,這能夠幫助你瞭解你的DApp的工做狀況。

  • 統計/已鏈接節點/節點日誌

QuikNode提供不一樣類型的統計,你能夠用來衡量DApp的使用狀況。你能夠查看請求次數、 節點的負載狀況以及Websocket消息等等。QuickNode同時也提供了你的節點已鏈接的 其餘節點的信息,以及節點的日誌等等。

九、QWallet

QuikNode同時也爲你的節點集成了一個Web錢包。QuikNode使用的是開源的MyEtherWallet。 這個錢包軟件會自動鏈接到你的節點,你可使用登陸QuikNode的用戶名/密碼來訪問這個 錢包。其餘的錢包網站或其節點可能會下線,可是你始終可使用你的QuikNode節點來 廣播交易!

十、結語

QuikNode是以太坊生態系統中出色而且有益的補充,QuikNode的節點很快並且徹底專用。 大量高性能的DApp將再也不須要使用本身的節點來得到性能的提高,所須要的就是開箱即用 的QuikNode高性能以太坊節點。

若是你想學習區塊鏈並在Blockchain Technologies創建職業生涯,那麼請查看咱們分享的一些以太坊、比特幣、EOS、Fabric、Tendermint等區塊鏈相關的交互式在線編程實戰教程:

  • java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
  • python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
  • php以太坊,主要是介紹使用php進行智能合約開發交互,進行帳號建立、交易、轉帳、代幣開發以及過濾器和交易等內容。
  • 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
  • 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • ERC721以太坊通證明戰,課程以一個數字藝術品創做與分享DApp的實戰開發爲主線,深刻講解以太坊非同質化通證的概念、標準與開發方案。內容包含ERC-721標準的自主實現,講解OpenZeppelin合約代碼庫二次開發,實戰項目採用Truffle,IPFS,實現了通證以及去中心化的通證交易所。
  • C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括帳戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
  • php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
  • c#比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在C#代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是C#工程師不可多得的比特幣開發學習課程。
  • EOS入門教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、帳戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
  • 深刻淺出玩轉EOS錢包開發,本課程以手機EOS錢包的完整開發過程爲主線,深刻學習EOS區塊鏈應用開發,課程內容即涵蓋帳戶、計算資源、智能合約、動做與交易等EOS區塊鏈的核心概念,同時也講解如何使用eosjs和eosjs-ecc開發包訪問EOS區塊鏈,以及如何在React前端應用中集成對EOS區塊鏈的支持。課程內容深刻淺出,很是適合前端工程師深刻學習EOS區塊鏈應用開發。
  • Hyperledger Fabric 區塊鏈開發詳解,本課程面向初學者,內容即包含Hyperledger Fabric的身份證書與MSP服務、權限策略、信道配置與啓動、鏈碼通訊接口等核心概念,也包含Fabric網絡設計、nodejs鏈碼與應用開發的操做實踐,是Nodejs工程師學習Fabric區塊鏈開發的最佳選擇。
  • Hyperledger Fabric java 區塊鏈開發詳解,課程面向初學者,內容即包含Hyperledger Fabric的身份證書與MSP服務、權限策略、信道配置與啓動、鏈碼通訊接口等核心概念,也包含Fabric網絡設計、java鏈碼與應用開發的操做實踐,是java工程師學習Fabric區塊鏈開發的最佳選擇。
  • tendermint區塊鏈開發詳解,本課程適合但願使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。

原文:QuikNode高性能以太坊節點服務【詳細指南】- 匯智網

相關文章
相關標籤/搜索