国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何使用密碼保護(hù)以太坊JSON-RPC的API?

cartoon / 1036人閱讀

摘要:本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)進(jìn)行安全輸出。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。

本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)Internet進(jìn)行安全輸出。

Go Ethereum(geth)是以太坊節(jié)點(diǎn)最受歡迎的軟件。其他流行的以太坊實(shí)現(xiàn)是Parity和cpp-ethereum等。分布式應(yīng)用程序(Dapps)是JavaScript編碼的網(wǎng)頁(yè),通過(guò)JSON-RPC API協(xié)議連接到任何這些以太坊節(jié)點(diǎn)軟件,該協(xié)議是在HTTP協(xié)議之上自行運(yùn)行的。

geth或沒(méi)有節(jié)點(diǎn)軟件本身不提供安全網(wǎng)絡(luò)。將Ethereum JSON-RPC API暴露給公共Internet是不安全的,因?yàn)榧词菇盟接蠥PI,這也會(huì)為瑣碎的拒絕服務(wù)攻擊打開(kāi)一扇門。節(jié)點(diǎn)軟件本身不需要提供安全的網(wǎng)絡(luò)原語(yǔ),因?yàn)檫@種內(nèi)置功能會(huì)增加復(fù)雜性并為關(guān)鍵區(qū)塊鏈節(jié)點(diǎn)軟件增加攻擊面。

Dapps本身是純客戶端HTML和JavaScript,不需要任何服務(wù)器,它們可以在任何Web瀏覽器中運(yùn)行,包括移動(dòng)和嵌入式瀏覽器,如Mist錢包內(nèi)的一個(gè)。

使用Nginx代理作為HTTP基本身份驗(yàn)證器

有幾種方法可以保護(hù)對(duì)HTTP API的訪問(wèn)。最常見(jiàn)的方法包括HTTP頭中的API令牌,基于cookie的身份驗(yàn)證或HTTP基本訪問(wèn)身份驗(yàn)證。

HTTP基本身份驗(yàn)證是HTTP協(xié)議的一個(gè)非常古老的功能,其中Web瀏覽器打開(kāi)一個(gè)本機(jī)彈出對(duì)話框,詢問(wèn)用戶名和密碼。它本質(zhì)上的保護(hù)是有限的,但非常容易實(shí)現(xiàn),非常適合需要為有限的互聯(lián)網(wǎng)受眾暴露私有Dapp的用例。這些用例包括顯示Dapp演示,私有和許可的區(qū)塊鏈應(yīng)用程序或?qū)⒁蕴还δ茏鳛檐浖捶?wù)解決方案的一部分。

Nginx

Nginx是最受歡迎的開(kāi)源Web服務(wù)器應(yīng)用程序之一。我們將展示如何設(shè)置Nginx Web服務(wù)器,以便它使用HTTP Basic Auth私下為你的Dapp(HTML文件)和geth JSON-RPC API提供服務(wù)。

我們假設(shè)Ubuntu 14.04更新的Linux服務(wù)器。文件位置可能取決于使用的Linux發(fā)行版。

安裝Nginx

在Ubuntu Linux 14.04或更高版本上安裝Nginx:

sudo apt install nginx apache2-utils
配置Nginx

我們假設(shè)我們編輯默認(rèn)的網(wǎng)站配置文件/etc/nginx/sites-enabled/default。我們使用proxy_pass指令與在localhost:8545中運(yùn)行的geth進(jìn)行通信:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name demo.example.com;


    # Geth proxy that password protects the public Internet endpoint
    location /eth {
        auth_basic "Restricted access to this site";
        auth_basic_user_file /etc/nginx/protected.htpasswd;

        # Proxy to geth note that is bind to localhost port                        
        proxy_pass http://localhost:8545;            
    }

    # Server DApp static files
    location / {
        root /usr/share/nginx/html;
        index index.html

        auth_basic "Restricted access to this site";
        auth_basic_user_file /etc/nginx/protected.htpasswd;
    }       
}

使用密碼創(chuàng)建HTTP Basic Auth用戶演示:

sudo htpasswd -c /etc/nginx/protected.htpasswd demo
配置geth

開(kāi)始使用geth守護(hù)進(jìn)程的最簡(jiǎn)單方法是在UNIX screen中運(yùn)行它:

screen

geth  # Your command line parameters here

退出screen 使用CTRL+A, D

請(qǐng)參閱geth private testnet說(shuō)明

配置Dapp

在你的Dapp中,使web3.js使用/eth端點(diǎn):

  function getRPCURL() {

    // ES2016 
    if(window.location.href.includes("demo.nordledger.com")) {      
      // Password protected geth deployment
      return "http://demo.nordledger.com/eth"

    } else {
        // Localhost development
      return "http://localhost:8545";  
    }
  }

  // ...

  web3.setProvider(new web3.providers.HttpProvider(getRPCURL()));
部署Dapp

將DApp文件復(fù)制到服務(wù)器上的/usr/share/nginx/html。這包括index.html以及相關(guān)的JavaScript和CSS資源。

Bonus - 部署shell腳本示例:

#!/bin/bash
#
# A simple static HTML + JS deployment script that handles Nginx www-data user correclty.
# Works e.g. Ubuntu Linux Azure and Amazon EC2 Ubuntu server out of the box.
#

set -e
set -u

# The remote server we are copying the files using ssh + public key authentication.
# Specify this in .ssh/config
REMOTE="nordledger-demo"

# Build dist folder using webpack
npm run build

# Copy local dist folder to the remote server Nginx folder over sudoed
# Assum the default user specified in .ssh/config has passwordless sudo
# https://crashingdaily.wordpress.com/2007/06/29/rsync-and-sudo-over-ssh/
rsync -a -e "ssh" --rsync-path="sudo rsync" dist/* --chown www-data:www-data $REMOTE:/usr/share/nginx/html/
重啟Nginx

為Nginx做一次硬重啟:

service nginx stop service nginx start
測(cè)試并迭代

訪問(wèn)網(wǎng)站,看看您的Dapp是否連接到代理的Geth。

檢查/var/log/nginx/error.log以獲取詳細(xì)信息。

如果從/eth端點(diǎn)獲得502 Bad Gateway,請(qǐng)確保geth正在作為服務(wù)器上的后臺(tái)進(jìn)程正常運(yùn)行。

======================================================================

分享一些以太坊、EOS、比特幣等區(qū)塊鏈相關(guān)的交互式在線編程實(shí)戰(zhàn)教程:

java以太坊開(kāi)發(fā)教程,主要是針對(duì)java和android程序員進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的web3j詳解。

python以太坊,主要是針對(duì)python工程師使用web3.py進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。

php以太坊,主要是介紹使用php進(jìn)行智能合約開(kāi)發(fā)交互,進(jìn)行賬號(hào)創(chuàng)建、交易、轉(zhuǎn)賬、代幣開(kāi)發(fā)以及過(guò)濾器和交易等內(nèi)容。

以太坊入門教程,主要介紹智能合約與dapp應(yīng)用開(kāi)發(fā),適合入門。

以太坊開(kāi)發(fā)進(jìn)階教程,主要是介紹使用node.js、mongodb、區(qū)塊鏈、ipfs實(shí)現(xiàn)去中心化電商DApp實(shí)戰(zhàn),適合進(jìn)階。

C#以太坊,主要講解如何使用C#開(kāi)發(fā)基于.Net的以太坊應(yīng)用,包括賬戶管理、狀態(tài)與交易、智能合約開(kāi)發(fā)與交互、過(guò)濾器和交易等。

EOS教程,本課程幫助你快速入門EOS區(qū)塊鏈去中心化應(yīng)用的開(kāi)發(fā),內(nèi)容涵蓋EOS工具鏈、賬戶與錢包、發(fā)行代幣、智能合約開(kāi)發(fā)與部署、使用代碼與智能合約交互等核心知識(shí)點(diǎn),最后綜合運(yùn)用各知識(shí)點(diǎn)完成一個(gè)便簽DApp的開(kāi)發(fā)。

java比特幣開(kāi)發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)、去中心化共識(shí)機(jī)制、密鑰與腳本、交易與UTXO等,同時(shí)也詳細(xì)講解如何在Java代碼中集成比特幣支持功能,例如創(chuàng)建地址、管理錢包、構(gòu)造裸交易等,是Java工程師不可多得的比特幣開(kāi)發(fā)學(xué)習(xí)課程。

php比特幣開(kāi)發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)、去中心化共識(shí)機(jī)制、密鑰與腳本、交易與UTXO等,同時(shí)也詳細(xì)講解如何在Php代碼中集成比特幣支持功能,例如創(chuàng)建地址、管理錢包、構(gòu)造裸交易等,是Php工程師不可多得的比特幣開(kāi)發(fā)學(xué)習(xí)課程。

這里是原文

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40154.html

相關(guān)文章

  • 如何使用密碼保護(hù)以太JSON-RPCAPI

    摘要:本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)進(jìn)行安全輸出。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)Internet進(jìn)行安全輸出。 Go Ethereum(geth)是以太坊節(jié)點(diǎn)最受歡迎的軟件。其他流行的以太坊實(shí)現(xiàn)是Pa...

    Zachary 評(píng)論0 收藏0
  • 如何使用密碼保護(hù)以太JSON-RPCAPI

    摘要:本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)進(jìn)行安全輸出。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 本文面向以太坊智能合約應(yīng)用程序開(kāi)發(fā)人員,并討論如何在密碼保護(hù)后,安全地運(yùn)行你的以太坊節(jié)點(diǎn),以便通過(guò)Internet進(jìn)行安全輸出。 Go Ethereum(geth)是以太坊節(jié)點(diǎn)最受歡迎的軟件。其他流行的以太坊實(shí)現(xiàn)是Pa...

    wow_worktile 評(píng)論0 收藏0
  • python借助web3py與以太區(qū)塊鏈節(jié)點(diǎn)交互幾種方式

    摘要:通信服務(wù)提供接口是如何與區(qū)塊鏈交互的關(guān)鍵。這通常通過(guò)將請(qǐng)求提交給基于或套接字的服務(wù)器來(lái)完成。初始化時(shí)會(huì)發(fā)生自動(dòng)檢測(cè)有時(shí),無(wú)法自動(dòng)檢測(cè)節(jié)點(diǎn)的位置。使用自動(dòng)檢測(cè)的示例一些節(jié)點(diǎn)提供超出標(biāo)準(zhǔn)的。是套接字的文件系統(tǒng)路徑。 通信服務(wù)提供接口是web3如何與區(qū)塊鏈交互的關(guān)鍵。接口接受JSON-RPC請(qǐng)求并返回響應(yīng)。這通常通過(guò)將請(qǐng)求提交給基于HTTP或IPC套接字的服務(wù)器來(lái)完成。 如果你已經(jīng)愉快地連接...

    booster 評(píng)論0 收藏0
  • python借助web3py與以太區(qū)塊鏈節(jié)點(diǎn)交互幾種方式

    摘要:通信服務(wù)提供接口是如何與區(qū)塊鏈交互的關(guān)鍵。這通常通過(guò)將請(qǐng)求提交給基于或套接字的服務(wù)器來(lái)完成。初始化時(shí)會(huì)發(fā)生自動(dòng)檢測(cè)有時(shí),無(wú)法自動(dòng)檢測(cè)節(jié)點(diǎn)的位置。使用自動(dòng)檢測(cè)的示例一些節(jié)點(diǎn)提供超出標(biāo)準(zhǔn)的。是套接字的文件系統(tǒng)路徑。 通信服務(wù)提供接口是web3如何與區(qū)塊鏈交互的關(guān)鍵。接口接受JSON-RPC請(qǐng)求并返回響應(yīng)。這通常通過(guò)將請(qǐng)求提交給基于HTTP或IPC套接字的服務(wù)器來(lái)完成。 如果你已經(jīng)愉快地連接...

    vboy1010 評(píng)論0 收藏0
  • PHP如何通過(guò)JSON-RPC以太交互

    摘要:之后,只需安裝它即可。處于控制臺(tái)模式時(shí),啟動(dòng)成功。準(zhǔn)備調(diào)用通過(guò)從訪問(wèn)。讓我們添加選項(xiàng)并重新啟動(dòng)添加了的幾個(gè)選項(xiàng)。 自去年以來(lái),我們正在開(kāi)發(fā)區(qū)塊鏈(Blockchain)業(yè)務(wù)。最近使用過(guò)Ethereum并使用PHP,所以我想我們應(yīng)該聊聊這個(gè)話題。 這里有個(gè)前提: 1.理解區(qū)塊鏈 2.對(duì)編程語(yǔ)言有了解 本文的主要內(nèi)容: 1.開(kāi)發(fā)環(huán)境 2.以太坊的介紹 3.準(zhǔn)備JSON-RPC調(diào)用 4...

    boredream 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<