Tumgik
#btterminator
Photo
Tumblr media
Gabriel Thorn has converted some #deathwing for into #btterminator. Have you don’t the same? #blacktemplars #40k #modelpainting #blacktemplars_40k #warhammer #spacemarine #citadel #rogaldorne #gamesworkshop #eternalcrusader #primaris #gw #paintingwarhammer #sigismund #grimaldus #helbrecht #warhammerCommunity #new40k #indomitus #spacemarines40k #miniature #miniaturepainting #tabletopgaming (at The Eternal Crusader) https://www.instagram.com/p/CeTKHrON0U-/?igshid=NGJjMDIxMWI=
0 notes
bazarbtc · 5 years
Text
مقدمه‌ای بر برنامه نویسی بلاکچین blockchain
Tumblr media
مقدمه‌ای بر برنامه نویسی بلاکچین blockchain :دنیایی بدون واسطه را تصور کنید. دنیایی که مردم به صورت مستقیم و بدون اینکه نیاز باشد به یکدیگر اعتماد کنند، به مبادله دارایی‌ها، عقد قرارداد و استفاده از خدمات می‌پردازند. برنامه‌هایی غیرمتمرکز که هیچ‌گاه متوقف نمی‌شوند و هیچ‌کس نمی‌تواند در کار آن‌ها تداخل ایجاد کند. شاید شما هم از آن دسته خواننده گانی باشید که چیز زیادی درباره BitCoin یا Ethereum نشنیده اند. شاید معرفی کامل تمام ارز های دیجیتال  از قبیل BitCoin، Dogecoi، Ethereum و. . . در یک مقاله کار دشواری باشد اما ما میتوانیم شما را به طور کامل با بلاکچین (BlockChain) آشنا کنیم. بلاک چین اختراعی برجسته و مبتکرانه است؛ زاییده فکر یک فرد یا گروهی از افراد که با نام مستعار ساتوشی ناکاموتو شناخته می‌شوند. اما از آن زمان که بلاک چین برای اولین بار معرفی شد، این فناوری به موجودیتی بزرگ تبدیل شده است و سوال اصلی بسیاری از افراد این است که بلاک چین چیست؟ بلاکچین (BlockChain) چیست؟ بلاکچین فناوری در حال رشدی است که در میان شبکه همتا به همتا (peer-to-peer) کار می کند و می تواند معاملات پولی تا امضای محتوا را پوشش دهد. بلاک چین پایگاه دیجیتالی توزیع شده و غیرمتمرکزی است که می تواند تراکنش های بین کامپیوترهای متعدد را ثبت کند. هر بلوک در بلاکچین شامل یک اشاره گر hash به عنوان لینک یا مرجع برای بلوک قبلی، داده های تراکنش و زمان بندی است. بلاکچین تغییرات نمی پذیرد!! و به عنوان پایگاهی توزیع شده و باز عمل می کند که می تواند تراکنش های بین دو بخش مختلف را به شیوه ای پایدار و قابل تصدیق و تأیید ثبت کند. پایگاه داده بلاک چین شامل دو نوع ثبت است: بلوک ها و تراکنش ها. بلوک ها دسته ای از تراکنش هایی معتبر  موجود در یک درخت هش هستند. (درخت هش درختی است که در آن هر گره برگ با یک بلوک داده برچسب گذاری شده است و هر گره غیربرگ با یک هش (hash) رمزگذاری شده از برچسب های گره های فرزند برچسب گذاری شده است.) هر بلوک حاوی هش بلوک قبلی در بلاکچین، این دو را به هم پیوند می دهد. بیشتر بیاموزید: آموزش ساخت توکن ارز دیجیتال در شبکه اتریوم کمی هم درباره ی ارز های دیجیتال بدانید!!! ارز دیجیتالی اصطلاحیست که این روز ها بیش از پیش در میان دولت ها و مرم محبوبیت یافته وافکار زیادی را به سمت خود سوق داده است. ارز دیجیتالی (cryptocurrency) واسطه دیجیتالی از مبادلات است که از رمزنگاری برای امنیت تراکنش ها و ایجاد کنترل واحدهای ارز استفاده می کند. استخراج کنندگان (Miners) شخصیت های اصلی داستان جذاب ارزهای دیجیتال هستند! آن ها  با استفاده از کامپیوترهای خود برای کمک به اعتبارسنجی و زمان بندی تراکنش ها، به حفظ یکپارچگی، امنیت و تعادل پایگاه های ارز دیجیتال کمک می کنند. بهتر است بعضی از محبوب ترین ارزهای دیجیتالی را بشناسید: BitCoin Ethereum Dogecoin BlackCoin Nxt LiteCoin PeerCoin بیت کوین (BitCoin) به زبان ساده، بیت کوین، یک ارز و پول دیجیتال و همچنین یک شبکه برای پرداخت‌های مستقیم و بدون واسطه است. پ که این روز ها بیشترین محبوبیت را در میار ارز های دیجیتال به خود اختصاص داده است.
Tumblr media
چیزی که بیت کوین را از دیگر پول‌های پیش از خود متمایز می‌کند، غیر متمرکز بودن آن است. غیرمتمرکز بودن یعنی اینکه هیچ‌کس نمی‌تواند به تنهایی کنترل شبکه را در دست داشته باشد و هیچ کس مالک اصلی آن نیست. هیچ بانک، موسسه، نهاد یا دولتی بیت کوین را کنترل نمی‌کند. در حقیقت کنترل بیت کوین به دست تمام کاربران آن است. اتریوم (Ethereum) در ساده ترین جمله، اتریوم یک پلتفرم آزاد مبتنی بر فناوری بلاک چین است که توسعه دهندگان را قادر می سازد تا برنامه های غیرمتمرکز خود را روی آن پیاده سازی کنند. این برنامه‌ها تحت کنترل و نظارت هیچ سازمان و نهادی نخواهند بود و تراکنش‌ها و معاملات روی اتریوم به صورت کاملا مستقل از بانک‌ها یا نهادهای دیگر پولی انجام می‌شوند. ارز دیجیتال این شبکه هم اتر نام دارد و واحد اختصاری آن ETH است. Dogecoin با وجود اینکه در سال 2013 به عنوان «جوک ارز» معرفی شد، در واقع دوج کوین ارز دیجیتالی است که از یک شوخی اینترنتی در مورد یک سگ شروع شد و به سرعت جامعه آنلاین خود را توسعه داد و در ژانویه 2014 سرمایه 60 میلیون دلاری را به دست آورد و  در ژوئن 2017، سرمایه 340 میلیون دلاری را از آن خود کرد. BlackCoin بلک کوین نیز ارز دیجیتالی peer-to-peer است. open source بوده و از سیستم اثبات سهام (proof-of-stake) استفاده می کند. بلاک چین شبکه خود را از طریق فرآیندی به نام minting امن کرده است. امنیت بالا، سرعت بالا، استخراج ساده و پذیرفته شده  از چجمله ویژگی های این ارز دیجیتال است که توسط اکثر کیف پول های معتبر دنیا به صورت چشم گیر در حال رشد است. مطالعه بیشتر: سه مشکل اساسی استفاده از بلاک چین Nxt Nxt شبکه ارز دیجیتالی open source است. همچنین از سیستم اثبات سهام برای به دست آوردن توافق معاملات استفاده می کند. بنابراین یک موجودی پول استاتیک ایجاد کرده و برخلاف بیت کوین، هیچ استخراجی در آن ضروری نیست. در واقع Nxtیک پلتفرم مبتنی بر بلاک چین منبع باز است که بر روی عملکرد اول پیشگامان ارز دیجیتال مانند بیت کوین ایجاد می شود. لایت کوین (LiteCoin)
Tumblr media
لایت کوین یک ارز دیجیتال همتا به همتا است که امکان پرداخت های نسبتا فوری و کم هزینه را در سراسر جهان فراهم می‌کند. دارای سیستم P2P برای پرداخت های میکروی پول های دیجیتالی مثل BitCoin و LiteCoin از طریق شبکه بدون مقیاس از کانال های پرداخت دوطرفه، بدون نیاز به اعتماد به شخص ثالث می باشد. PeerCoin PeerCoin یک ارز دیجیتالی peer-to-peer است که از سیستم های اثبات سهام و اثبات کار (proof-of-work) استفاده می کند. پیرکوین با هدف صرفه جویی در انرژی که نمونه آن کاهش میزان انرژی الکتریکی مصرفی مورد نیاز برای استفاده از شبکه بیت کوین است فعالیت خود را در سال 2012 شروع کرده است. ایجاد BlockChain در VB. NET در قدم اول ویژوال استودیو را باز کرده و یک پروژه Visual Basic Class Library ایجاد کنید. این پروژه بر اساس پلت فرم Ethereum است. کلاسی را به پروژه اضافه کنید و نام آن را Node بگذارید (یا چیزی شبیه به این). کد زیر را به آن اضافه کنید: Public Class Node Private btValue As Byte() Private btKey As Byte() End Class کلاس زیر را برای رمزگذاری بایت ها به هگزادسیمال و برعکس اضافه کنید: Imports System.IO Public NotInheritable Class CompactEncoder Private Shared Delimiter As Byte = 16 Public Shared Function CompactEncode(btHex As Byte()) As Byte() Dim btTerminate As Byte = 0 If btHex(btHex.Length - 1) = Delimiter Then btTerminate = 1 btHex = Encoder.RemoveLastBytes(btHex, 1) End If Dim intOddLength As Integer = btHex.Length Mod 2 Dim intFlag As Integer = 2 * btTerminate + intOddLength If intOddLength 0 Then Dim btFlags As Byte() = New Byte() {CByte(intFlag)} btHex = Encoder.JoinByteArrays(btFlags, btHex) Else Dim btFlags As Byte() = New Byte() {CByte(intFlag), 0} btHex = Encoder.JoinByteArrays(btFlags, btHex) End If Dim msBuffer As New MemoryStream() For i As Integer = 0 To btHex.Length - 1 Step 2 msBuffer.WriteByte(CByte(16 * btHex(i) + btHex(i + 1))) Next Return msBuffer.ToArray() End Function Public Shared Function CompactDecode(btString As Byte()) _ As Byte() Dim btRes As Byte() = CompactHexDecode(btString) btRes = Encoder.RemoveLastBytes(btRes, 1) If btRes(0) >= 2 Then btRes = Encoder.AppendByteToArray(btRes, Delimiter) End If If btRes(0) Mod 2 = 1 Then btRes = Encoder.RemoveFirstBytes(btRes, 1) Else btRes = Encoder.RemoveFirstBytes(btRes, 2) End If Return btRes End Function Public Shared Function CompactHexDecode(btEncodedHexadecimal _ As Byte()) As Byte() Dim chrCharacters As Char() = New Char() {"0"c, "1"c, "2"c, _ "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c, "a"c, "b"c, _ "c"c, "d"c, "e"c, "f"c} Dim btHex As Byte() = New Byte(-1) {} For Each btNumber As Byte In btEncodedHexadecimal Dim hexValue As String = btNumber.ConvertToHex() Dim chrHexValue As Char() = hexValue.ToCharArray() btHex = Encoder.AppendByteToArray(btHex, _ CByte(Array.IndexOf(chrCharacters, chrHexValue(0)))) btHex = Encoder.AppendByteToArray(btHex, _ CByte(Array.IndexOf(chrCharacters, chrHexValue(1)))) Next btHex = Encoder.AppendByteToArray(btHex, Delimiter) Return btHex End Function End Class بیشتر بدانید: کاربرد بلاکچین در پرداخت extension module زیر را برای تبدیل بایت به هگزادسیمال اضافه کنید: Imports System.Text Public Module Converter Public Function ConvertByteArrayToUInt64(btInput As Byte()) _ As UInt64 If btInput.Length Dim tempArray As Byte() = New Byte(7) {} Array.Copy(btInput, 0, tempArray, (tempArray.Length - _ btInput.Length), btInput.Length) Array.Reverse(tempArray) Return BitConverter.ToUInt64(tempArray, 0) End If Return BitConverter.ToUInt64(btInput, 0) End Function Private ReadOnly HexStringTable As String() = New String() _ {"00", "01", "02", "03", "04", "05", "06", "07", "08", _ "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", _ "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", _ "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", _ "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", _ "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", _ "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", _ "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", _ "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", _ "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", _ "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", _ "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", _ "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", _ "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", _ "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", _ "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", _ "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", _ "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", _ "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", _ "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", _ "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", _ "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", _ "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", _ "e5", "e6", "e7", "e8", "e9", "ea", "be", "ec", "ed", "ee", _ "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", _ "f9", "fa", "fb", "fc", "fd", "fe", "ff"} Public Function ConvertToHex(btVal As Byte()) As String Dim sbString As New StringBuilder() If btVal IsNot Nothing Then For Each b As Byte In btVal sbString.Append(HexStringTable(b)) Next End If Return sbString.ToString() End Function End Module کد پایین برای رمزگشایی و گذاشتن رمز در اشیای گرفته شده از آرایه های بایت ، که بعد ها به هگزا تبدیل خواهند شد،اضافه نمایید: Public Class Decode Private uPos As UInt64 Private oDecoded As Public Sub New(Pos As UInt64, Decoded As ) Me.uPos = Pos Me.oDecoded = Decoded End Sub Public Function GetPos() As UInt64 Return uPos End Function Public Function GetDecoded() As Return oDecoded End Function End Class Imports System.Text Public NotInheritable Class Encoder Public Shared Function ToHex(oInput As ) As Byte() Dim uInput As UInt64 Dim blnNumber As Boolean = _ UInt64.TryParse(oInput.ToString(), uInput) If blnNumber Then Return If((uInput = 0), New Byte(-1) {}, _ ConvertUInt64ToByteArray(uInput)) ElseIf TypeOf oInput() Is String Then Dim strInput As String = DirectCast(oInput(), String) Return Encoding.ASCII.GetBytes(strInput.ToCharArray()) End If End Function Public Shared Function ConvertUInt64ToByteArray(uInput _ As UInt64) As Byte() Dim btBytes As Byte() = BitConverter.GetBytes(uInput) Array.Reverse(btBytes) Dim i = 0 While btBytes(i) = 0 i += 1 End While Dim btResult As Byte() = New Byte(btBytes.Length - i - 1) {} Array.Copy(btBytes, i, btResult, 0, btBytes.Length - i) Return btResult End Function Public Shared Function JoinByteArrays(btInputA As Byte(), _ btInputB As Byte()) As Byte() Dim btResult As Byte() = New Byte(btInputA.Length + _ (btInputB.Length - 1)) {} Array.Copy(btInputA, 0, btResult, 0, btInputA.Length) Array.Copy(btInputB, 0, btResult, btInputA.Length, _ btInputB.Length) Return btResult End Function Public Shared Function AppendByteToArray(btInputArr As Byte(), _ btInput As Byte) As Byte() Dim btResult As Byte() = New Byte(btInputArr.Length) {} Array.Copy(btInputArr, 0, btResult, 0, btInputArr.Length) btResult(btResult.Length - 1) = btInput Return btResult End Function Public Shared Function RemoveLastBytes(btInput As Byte(), _ intAmount As Integer) As Byte() Dim btResult As Byte() = New Byte(btInput.Length - _ intAmount - 1) {} Array.Copy(btInput, 0, btResult, 0, btInput.Length - _ intAmount) Return btResult End Function Public Shared Function RemoveFirstBytes(btInput As Byte(), _ intAmount As Integer) As Byte() Dim btResult As Byte() = New Byte(btInput.Length - _ intAmount - 1) {} Array.Copy(btInput, intAmount, btResult, 0, _ btInput.Length - intAmount) Return btResult End Function End Class کد قبلی با تمام منطق بلاک چین سرو کار دارد، اما هنوز هم باید بتوانیم به طور صحیح استخراج را انجام دهیم، که بعدا باید انجام شود، بنابراین لطفا آن را درنظر بگیرید! Solidity Solidity یک زبان سطح بالا و contract-oriented است که ماشین مجازی Ethereum را هدف قرار داده است. می توانید مستقیما از طریق ویژوال استودیو برنامه های Solidity Blockchain را کدنویسی کرده و مورد استفاده قرار دهید. این افزونه را می توانید از مارکت ویژوال استادیو دانلود کنید، تنظیم و شروع به کار با آن بسیار آسان است. این پروژه به اتمام نرسیده است. اما این شروع مناسبی برای ساخت بلاک چین برای شماست. انجام این کار ها به همان میزان که جذاب به نظر می رسد، شاید سخت هم باشد! امیدواریم از مطلب" مقدمه‌ای بر برنامه نویسی بلاکچین blockchain " استفاده کرده باشید. Read the full article
0 notes
Photo
Tumblr media
#btweeklyupdate Happy Monday to you all. Especially all our new followers. Slow news the past few weeks. So slow we didn’t even bother with an update last week. #GW has just posted about the new event exclusive #primaris company champion. Rules are only for use in Legend games at the moment. Are we going to see a lot of First Born units redone in #primaris form? https://www.warhammer-community.com/2022/02/14/here-are-this-years-exclusive-event-miniatures-and-how-to-get-them In group news we are in the middle of our #mar2022btbannercompetiton. Thanks to Jake Kotevski and Artur Wysocki for making submissions. Your pictures are posted. We are covering the big boys of your Crusades - #btgravis and #btterminator armoured units. So why not join our group and take part? https://www.facebook.com/groups/EternalCrusade/ #theeternalcrusader #eternalcrusade #blacktemplar #blacktemplars #blacktemplars40k #blacktemplar_40k #spacemarines #spacemarines40k #adeptusastartes #thelastwall #warhammer40k #warhammer40000 #40k #warhammercommunity #gamesworkshop #gamesworkshop40k (at The Eternal Crusader) https://www.instagram.com/p/CZ-A_zst44v/?utm_medium=tumblr
0 notes