ハッカソン ソリューション
これは、先週リリースしたミニ24 時間ハッカソンの解決方法を簡単にまとめたものです。一部の人にとっては、これはあなたが書いた最初のコードでさえありました。そのため、不十分な人のために、問題を解決するために何をする必要があったかについてのクイックガイドを以下に示します.
問題
ハッカソンでは、資格情報「API URL」と「API KEY」を公開したノードから正確に「1 mHOPR」を引き出すように求められました。
「公開」された API KEY は、実際には、API レベルでノードの「accountWithdraw」エンドポイントへのアクセスのみを許可するトークンを生成するために、新しい機能ベースの API機能を使用して作成されたキーでした。
概念的な解決策
一般に、HOPR ノードまたは別のデバイスと通信するには、次の 2 つのものが必要です。
- 指示/リクエストを送信するエンドポイント
- デバイスが理解できるように命令を構造化する方法 (関連する API)
あなたが見つける必要があるもの
「accountWithdraw」API を使用するために必要な情報が提供されたので、最初のステップは、次の HOPR ドキュメントでこれを見つけることでした。https://docs.hoprnet.org/developers/rest-api
ここで見つける必要がある最初の 2 つのことは次のとおりです。
- エンドポイントのサフィックスは「/api/v2/account/withdraw」です
- API キーはヘッダー パラメータとして追加されます
- リクエストを「http://142.93.5.175:3001/api/v2/account/withdraw"
- リクエストのヘッダーに x-auth-token=PZjS7imRpmoPNziYF7–2kCGvG-UfaG1XsdiKEMApGV4 を追加します。
- 「POST」リクエストです
次に、リクエストに含めるものを見つける必要があります。ここでは、3 つのパラメーターがあり、すべて必須であることがわかります。
- 通貨: 「HOPR」または「NATIVE」と正確につづります。Hopr トークンを出金しようとしているので、これを「HOPR」に設定する必要があります。
- 金額: その通貨の最小単位で数えられる数値。HOPR トークンには小数点以下 18 桁があるため、1 つの HOPR/mHOPR トークンは「1000000000000000000」として要求されます。
- 受取人: これは、資金を引き出したいウォレットアドレスです。
API_URL = “http://142.93.5.175:3001/api/v2/account/withdraw"
headers = {
‘x-auth-token’: “PZjS7imRpmoPNziYF7–2kCGvG-UfaG1XsdiKEMApGV4”
}
payload = {
“amount”: “1000000000000000000”,
“currency”: “HOPR”,
“recipient”: “YOUR_WALLET_ADDRESS”
}
このリクエストを行う方法
このリクエストを行う方法の簡単な例をいくつか示しますが、任意のコーディング言語または API プラットフォームを使用できます。
ノート:
- 良い練習のために、ヘッダーのキー/値: 'Content-Type': 'application/json' を追加しました。
- ウォレット アドレスは追加されておらず、ハッカソンからのセキュリティ トークンは現在有効期限が切れているため、これらのメソッドを今すぐ使用するには、有効な資格情報に置き換える必要があります。
次のように、curl を使用して端末からリクエストを送信できます。
curl -X POST http://142.93.5.175:3001/api/v2/account/withdraw \
-H "Content-Type: application/json" \
-H "x-auth-token: PZjS7imRpmoPNziYF7-2kCGvG-UfaG1XsdiKEMApGV4" \
-d '{"amount": "1000000000000000000", "currency": "HOPR", "recipient": "YOUR_WALLET_ADDRESS"}'
ブラウザ/デスクトップで Postman などの API プラットフォームを使用してリクエストを送信できます。postman では、新しい「POST」リクエストを正しいエンドポイントに作成し、以下のようにリクエストのヘッダーとボディに値を追加する必要があります。
Python の使用
Python では、json/requests ライブラリを使用して同様にリクエストをフォーマットできます。
import requests
import json
api_key = 'FBg4ns - 2RHeNsB754tx5uM8v9lVXLSnN7IiSEVl09I'
api_url = "http://142.93.5.175:3001/api/v2/account/withdraw"
payload = json.dumps({
"amount": "1000000000000000000",
"currency": "HOPR",
"recipient": "0x5E14F9ba0F2aa3D3A11cF2823d0E45F0636a8baf"
})
headers = {
'x-auth-token': api_key,
'Content-Type': 'application/json'
}
response = requests.request("POST", api_url, headers=headers, data=payload)
JavaScript と Node.js を使用してリクエストを行うには、node-fetch パッケージをインストールする必要があります。
npm install node-fetch
const fetch = require(‘node-fetch’);
const API_URL = 'http://142.93.5.175:3001/api/v2/account/withdraw';
const headers = {
'Content-Type': 'application/json',
'x-auth-token': 'PZjS7imRpmoPNziYF7–2kCGvG-UfaG1XsdiKEMApGV4',
};
const payload = {
amount: '1000000000000000000',
currency: 'HOPR',
recipient: 'YOUR_WALLET_ADDRESS',
};
fetch(API_URL, {
method: 'POST',
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error('Error:', error));
node withdraw.js
移転可能な知識
方法に関係なく、重要なポイントは、概念的に HOPR ノードと対話する方法です。この要求/応答ロジックの基本を理解していれば、任意の言語を使用して HOPR で任意のアプリケーションを構築できます。
単純なスクリプトからブラウザー、ゲーム、または複雑なサービスまで、HOPR が提供するプライバシー機能はメッセージング レイヤーに存在するため、開発するあらゆるアプリケーションに追加できます。エコシステムに慣れていない場合は、単純にHOPR ノードを実行することから始めるか、HOPR で開発された最初の商用サービスであるRPCh を探索してください。
リクエスト/レスポンス ロジック
この要求/応答ロジックは、コンピューティングの基本であり、目新しいものではありませんが、インターネットにおける最大のプライバシー懸念の基礎でもあります。
このハッカソンの問題を見てください。公開されたノードにリクエストを送信するには、トークン、金額、受信アドレスなど、いくつかの詳細を渡す必要がありました。
画像の拡大、ボタンのクリック、製品の閲覧など、オンラインで行うすべてのことについて同様のシナリオを想像してみてください。これらのわずかなアクションの 1 つ 1 つには、デバイス間の通信 (要求/応答) が必要です。
問題は、これらすべての詳細とアクションにタイムスタンプが付けられ、ID (IP アドレス) でタグ付けされ、誰かがそこに座って、オンラインで行うほとんどすべてのことと、時間をどのように費やしているかを正確に確認できる場合に発生します. 暗号ウォレットを使用するたびに、まさにこれほど悪いことになります. 作成したすべてのリクエストと IP アドレスを RPC プロバイダーに公開しています。これは、Web 2.0 をデータ収集で悩ませたのと同じタイプの集中型データ処理です。
そしてそれは、 RPCh が解決する正確な問題でもあります。
HOPR 創設者Sebastian Bürgel 氏
Webサイト:https://rpch.net
RPCh Alpha を無料で実行します。https://access.rpch.net/
ツイッター:https://twitter.com/RPC_h_
不和:https://discord.gg/VRyTQTNBTy
HOPRを搭載:https://hoprnet.org/

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































