
ARK.NETは、.NETプラットフォーム用のARKエコシステムライブラリです。 ARKプラットフォーム上に構築された効率的な.NETアプリケーションの開発を支援するために、最も関連性の高いすべてのARK機能を実装します。また、ARKへの低レベルのアクセスを提供するため、アプリケーションを簡単に構築できます。
パッケージはサポートしています:
詳細については、インストールパッケージark.net nuget Webサイトにアクセスしてください。
自分でコンパイルするには、gitクローンを作成し、プロジェクトを開き、Visual Studioのコンパイルボタンを押すことができます。コマンドプロンプト:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
すべてのARK-NODEサービス応答には、オブジェクト表現があります。サービスフォルダーの下でサービスクラスを使用できます。応答は、リストの場合、または単一のアイテムのオブジェクトに対してはiNumerableです。すべての方法には、対応する非同期メソッドがあります。
コードにスピーキングをさせるのが最善です。その他の例については、すべてのテストが書かれているARK.NETテストをご覧ください。API使用量を確認できます。一部のコードスニペットは以下にあります。
最初の呼び出しを開始する必要があるため、ライブラリ内のすべての設定は、動作する前に初期化できます。 Arknetapiの複数のインスタンスを同時に使用できます(同じアプリケーションでDevnet&Mainnet)
private ArkNetApi _arkNetApi ;
public ArkNetApi ArkNetApi
{
get { return _arkNetApi ?? ( _arkNetApi = new ArkNetApi ( ) ) ; }
}
await ArkNetApi . Start ( NetworkType . MainNet ) ; //Other type is DevNet
//or
await ArkNetApi . Start ( specificPeerIp , specificPeerPort ) ;
//or (Multiple addresses)
await ArkNetApi . Start ( listArkPeerAddresses ) ; //Existing account
var accCtnrl = new AccountController ( ArkNetApi , "top secret pass" ) ;
//Send ARK
var result = accCtnrl . SendArk ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
//Vote 4 Delegate
var result = accCtnrl . VoteForDelegate ( delegateName ) ;
//Un-Vote Delegate
var result = accCtnrl . UnVoteDelegate ( delegateName ) ;
//Create and send transaction. Transaction can be saved offine (.ToJson()) and sent later.
var transaction = accCtnrl . CreateTransaction ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
var result = accCtnrl . SendTransaction ( transaction ) ;
//Get Account
var account = accCtnrl . GetArkAccount ( ) ;
//New Account
new AccountController ( ArkNetApi , ArkNetApi . AccountService . GeneratePassphrase ( ) ) ;利用可能なAPI通話の完全なリストについては、ark.netテストプロジェクトをご覧ください
//PeerService
var peers = ArkNetApi . PeerService . GetAll ( ) ;
var peersOK = peers . Where ( x => x . Status . Equals ( "OK" ) ) ;
//TransactionService
var trans = ArkNetApi . TransactionService . GetAll ( ) ;
//BlockService
var blocks = ArkNetApi . BlockService . GetAll ( ) ;
//AccountService - Generate passphrase
var result = ArkNetApi . AccountService . GeneratePassphrase ( ) ;
//DelegateService
var delegates = ArkNetApi . DelegateService . GetAll ( ) ;
//LoaderService
var autoConfigParams = ArkNetApi . LoaderService . GetAutoConfigureParameters ( ) ;
.. .レイヤーは、コアアークブロックチェーン通信(トランザクション、暗号...)に使用されます。サービスレイヤーとアカウントレイヤーから呼び出されるAPIライブラリによって包まれています。
//Create & send transaction
TransactionApi tx = ArkNetApi . TransactionApi . CreateTransaction ( recepient , amount , description , passphrase ) ;
Peer peer = ArkNetApi . NetworkApi . GetRandomPeer ( ) ;
var result = peer . PostTransaction ( tx ) ;
//Connect to a specific peer to perform requests
var peerApi = new PeerApi ( ArkNetApi , ipAddress , Port )
await peerApi . MakeRequest ( ArkStaticStrings . ArkHttpMethods . GET , ArkStaticStrings . ArkApiPaths . Loader . GET_STATUS ) ;
//Force specific peer. All API calls will flow through this peer. Set back to null to resume decentralized use. Monitoring a specific peer is a use case for this functionality.
ArkNetApi . NetworkApi . ForcedPeer = ArkNetApi . PeerService . GetPeer ( ip , port ) ;
//or
ArkNetApi . NetworkApi . ForcedPeer = new PeerApi ( ArkNetApi , ipAddress , Port ) ;
// Switch network (Can also create new ArkNetApi instance as alternative solution)
await ArkNetApi . SwitchNetwork ( NetworkType . DevNet )
//New network
_arkNetApiDevNet = new ArkNetApi ( ) ;
await _arkNetApiDevNet . Start ( NetworkType . DevNet ) ; ロギングフレームワークは、Arknet内からログをキャプチャするために使用できます。 IarkLoggerを実装し、arknetapi.start()に渡すのはライブラリのユーザー次第です。以下は、log4netを使用した実装の例です。
public class Log4netAdapter : IArkLogger
{
private readonly ILog _log4NetLog ;
public Log4netAdapter ( ILog log4NetLog )
{
_log4NetLog = log4NetLog ;
}
public void Log ( ArkLogEntry entry )
{
if ( entry . LogLevel == ArkLogLevel . Debug )
_log4NetLog . Debug ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Info )
_log4NetLog . Info ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Warn )
_log4NetLog . Warn ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Error )
_log4NetLog . Error ( entry . Message , entry . Exception ) ;
else
_log4NetLog . Fatal ( entry . Message , entry . Exception ) ;
}
}
ILog log = LogManager . GetLogger ( typeof ( LoggingTests ) ) ;
await ArkNetApi . Start ( NetworkType . MainNet , new Log4netAdapter ( log ) ; 質問やフィードバックについては、GitHubの問題を使用してください。機密リクエストまたは特定の要求については、パブリックチャネルについてお問い合わせください。
このパッケージ内のセキュリティの脆弱性を発見した場合は、[email protected]に電子メールを送信してください。すべてのセキュリティの脆弱性が迅速に対処されます。
©Arkecosystem