
Ark.net은 .NET 플랫폼의 ARK Ecosystem 라이브러리입니다. ARK 플랫폼에 구축 된 효율적인 .NET 애플리케이션을 개발하는 데 도움이되는 모든 관련 ARK 기능을 구현합니다. 또한 ARK에 대한 낮은 수준의 액세스를 제공하므로 응용 프로그램을 쉽게 구축 할 수 있습니다.
패키지는 다음을 지원합니다.
설치 -Package Ark.net 자세한 내용은 Nuget 웹 사이트를 방문하십시오.
직접 컴파일하려면 클론을하고 프로젝트를 열고 Visual Studio에서 컴파일 버튼을 누를 수 있습니다. 명령 프롬프트 :
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
모든 Ark-Node 서비스 응답에는 객체 표현이 있습니다. 서비스 폴더에서 서비스 클래스를 사용할 수 있습니다. 단일 항목에 대한 목록 또는 개체에 대해 응답은 ienumerible입니다. 모든 방법에는 상응하는 비동기 방법이 있습니다.
코드가 말하기를하는 것이 가장 좋습니다. 더 많은 예를 보려면 모든 테스트가 작성된 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