
Ark.net هي مكتبة Ark Ecosystem لنظام .NET. إنه ينفذ جميع وظائف ARK الأكثر صلة لمساعدتك في تطوير تطبيقات .NET فعالة مبنية على منصة ARK . يوفر أيضًا وصولًا منخفضًا من المستوى إلى Ark حتى تتمكن من إنشاء تطبيقك بسهولة.
تدعم الحزمة:
تثبيت package ark.net اذهب على موقع Nuget لمزيد من المعلومات.
لتجميعها بنفسك ، يمكنك git استنساخ ، وفتح المشروع والضغط على زر الترجمة في Visual Studio. في موجه الأوامر:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
جميع استجابات خدمة Ark-Doed لها تمثيلات كائنات. يمكنك استخدام فصول الخدمة ضمن مجلد الخدمة. الردود غير قابلة للتطبيق لقائمة أو كائن لعنصر واحد. كل طريقة لها طريقة ASYNC المقابلة.
من الأفضل السماح للرمز بالتحدث. لمزيد من الأمثلة ، انظر إلى اختبارات 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 ( ) ) ;للحصول على قائمة كاملة من مكالمات واجهة برمجة التطبيقات المتاحة ، يرجى إلقاء نظرة على مشروع اختبار 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 ( ) ;
.. .يتم استخدام الطبقة لاتصالات blockchain الأساسية (المعاملة ، التشفير ...). يتم لفها من قبل مكتبات واجهة برمجة التطبيقات التي يتم استدعاؤها من طبقة الخدمة وطبقة الحساب.
//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