سخه 10 زبان برنامهنویسی سیشارپ همراه با نسخه 6 چارچوب داتنت منتشر شد. در نسخه جدید قابلیتهای کاربردی نسبتا مهمی در اختیار برنامهنویسان قرار گرفته و برخی قابلیتهای قبلی بهبود پیدا کردهاند تا خوانایی این زبان محبوب بازهم بیشتر از قبل شود. در این مقاله نگاهی اجمالی به مهمترین آنها خواهیم داشت.
760 4_0.gif
بررسی پارامتر تهی (Null Parameter Checking)
استثنا مرجع تهی (Null Reference Exception) یکی از خطاهای دردسرآفرین برنامههای کاربردی است. برنامهنویسان برای پیشگیری از بروز این خطا مجبور هستند ورودیهای متدها را بررسی کنند، اما ویژگی جدید این فرآیند را سادهتر و خوانایی کدها را بیشتر کرده است. در حال حاضر برای بررسی تهی (خالی بودن) یک پارامتر از ترکیب نحوی زیر استفاده میشود:
public MyFunction(int id, SomeClass newObject)
}
if (newObject == null)
{
throw new ArgumentNullException(“newObject”);
}
// Code Here
{
در متد بالا، یک شیء بهنام newObject از نوع SomeClass به پارامتر MyFunction تخصیص داده شده است. اگر شیء مذکور مقداردهی اولیه نشده باشد (تهی باشد) متد نباید کار کند. نسخه 10 سیشارپ این فرآیند ارزیابی را ساده کرده است. کافی است، دو کاراکتر !! به انتهای نام پارامتر اضافه کنید.
public MyFunction(int id, SomeClass newObject!!)
}
// Code Here
{
در قطعه کد بالا، بهشکل خودکار تهی بودن newObject بررسی میشود و اگر نتیجه ارزیابی مثبت باشد، خطای ArgumentNullException تولید میشود که امکان مدیریت بدون مشکل آن وجود دارد.
خاصیتهای اجباری (Required Properties)
برنامهنویسان مجرب از سازنده (Constructor) پیچیده در برنامههای خود استفاده نمیکنند و ترجیح میدهند از سازندههای ساده استفاده کنند. بهبیان دیگر، ترجیح میدهند مقادیر را بهشکل مستقیم به فیلدها ارجاع دهند. برنامهنویسان برای ساخت اشیاء از سازندههای سبکوزن همانند قطعه کد زیر استفاده میکنند:
var Myconstructor = new MyClass
{
Title = “Hi Everyone”
Category = “.NET»,
ReleaseDate = DateTime.Now()
}
با اینحال، گاهیاوقات باید خصلتها مقداردهی اولیه شوند، اما ممکن است توسعهدهندگان اینکار را فراموش کنند. در نسخه 10 سیشارپ کلمه کلیدی Required در ارتباط با خصلتها معرفی شد. در این حالت هنگام ساخت کلاس، میتوانیم یک فیلد اجباری تعریف کنیم که اگر هنگام نمونهسازی از کلاس، فیلد مذکور مقداردهی نشد، خطای زمان کامپایل ایجاد شود.
public class MyClass
}
public required string Title {get; init;}
public string Category {get; init;}
public DateTime ReleaseDate {get; init;}
{
ویژگی Global Using
بهطور معمول، برنامهنویسان در ابتدای سورسهایی که در سیشارپ مینویسند از دستور using استفاده میکنند که همراه با آن فضاینام (Namespace) قرار میگیرد. فضاهای نام پذیرای کلاسها، متدها و اشیاء دادهای هستند که برنامهنویسان برای نوشتن کدهای خود به آنها نیاز دارند. بهطور مثال، System، System.Linq، System.Collections.Generic و غیره تقریبا در همه پروژهها و فایلهایی که توسط زبان برنامهنویسی سیشارپ نوشته میشوند، وجود دارند. تیم توسعه داتنت و سیشارپ در نسخه 10 ویژگی Global Using را معرفی کرد. ویژگی فوق به برنامهنویسان اجازه میدهد برای وارد کردن (Import) یک فضاینام بهجای آنکه از دستور Using استفاده کنند از عبارت Global Using استفاده کنند. تفاوت دستور جدید با دستور قبلی چیست؟ اگر در یکی از فایلهای پروژه از Global Using استفاده کنید، نیازی نیست در فایلهای دیگر پروژه، دومرتبه از همان Using استفاده کنید. بهعبارت دقیقتر، دستور فوق قابلیت گسترشپذیری دارد و به دیگر فایلها تعمیم داده میشود.
برنامهنویسان میتوانند از Global Using در یکی از فایلهای اصلی پروژه مثل فایل Program.cs استفاده کنند تا ویژگی فوق به فایلهای دیگر تعمیم داده شود. اگر بهدنبال برنامهنویسی ساختیافته هستید، پیشنهاد میکنیم فایلی بهنام GlobalNamespace.cs در پروژه ایجاد کنید و تمام دستورات Using را در آن قرار دهید تا مجبور به تکرار دستورات نباشید.
global using System;
global using System.Linq;
global using System.Collections.Generic;
برنامهنویسان میتوانند بهطور همزمان از Using و Global using در یک فایل استفاده کنند. همچنین، میتوان از Global Using برای وارد کردن کلاسهای ایستا استفاده کرد. ترکیب نحوی اینکار بهشرح زیر است:
global using static System.Console;
ویژگی Implicit Using
پروژههایی که با داتنت نسخه 6 توسعه داده میشوند، مجهز به قابلیتی هستند که Implicit Using نام دارد. توسعهدهندگان میتوانند ویژگی فوق را فعال یا غیرفعال کنند. اگر قابلیت مذکور در پروژهای فعال باشد، بهشکل پیشفرض برخی Usingها را بر مبنای پروژه به آن اضافه میکند. بهطور مثال، در ارتباط با برنامههای کنسول، Usingهای زیر بهطور خودکار به تمامی فایلهای پروژه اضافه میشوند.
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
همانگونه که مشاهده میکنید، ویژگی فوق کاملا کاربردی است. برنامهنویسان میتوانند از روشهای زیر برای فعالسازی ویژگی فوق استفاده کنند:
اگر به بخش Properties پروژه در Solution Explorer در ویژوال استودیو بروید، گزینهای بهنام Implicit global using را مشاهده میکنید که امکان فعال یا غیرفعال کردن آن با فعالسازی تیک Usingها وجود دارد.
دومین روش این است که فایل تنظیمات پروژه که فرمت فایلی .csproj نام دارد را باز کنید و مقدار برچسب ImplicitUsings را فعال (Enbale) کنید. برای غیرفعال کردن قابلیت فوق، کافی است مقدار برچسب مذکور را Disable تنظیم کنید.
<Project Sdk=”Microsoft.NET.Sdk”>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
اگر دوست دارید تا بدانید چه Usingهایی بهطور خودکار به پروژه اضافه شدهاند، پروژه را باز کنید و به مسیر Obj\Debug\Net6.0 بروید. در مسیر مذکور، فایلی بهنام GlobalUsings.g.cs را مشاهده میکنید که Usingها در آن قرار دارد. کامپایلر فایل مذکور را بهطور خودکار برای پروژههایی که روی داتنت 6 توسعه داده میشوند و قابلیت فوق در آنها فعال شده است، ایجاد میکند. اگر در نظر دارید، گزینههای دیگری به Usingهای پیشفرض اضافه کنید، باید برچسب زیر را به برچسبهای تنظیمات که .csproj نام دارد اضافه کنید.
<ItemGroup>
<Using Include=”System.Numerics” />
</ItemGroup>
در قطعه کد بالا فضاینام Numerics به موارد پیشفرض اضافه میشود.
رشتههای درونیابی ثابت
(Constant interpolated strings)
ویژگی مذکور، اجازه میدهد متغیرها و عبارتهای محاسباتی را به روشی شفافتر و خواناتر به رشتهها الحاق کرد. بهطور سنتی، برنامهنویسان از عملگر مثبت (+) یا متد Format کلاس String برای الحاق رشتهها استفاده میکنند. بهطور مثال، اگر در نظر داشته باشیم رشته جدید از طریق الحاق دو متغیر firstName و lastName ایجاد کنیم، باید کاری مشابه حالت زیر انجام دهیم:
var FirstName = “HamidReza”;
var LastName = “Taebi”;
var Firstattach = FirstName + “ “ + LastName;
var Secondattach = string.Format(“{0} {1}”, FirstName, LastName);
با ویژگی جدید Interpolated Strings کاراکتر $ را قبل از رشته جدید قرار میدهیم و داخل کروشه نام متغیر یا عملیات محاسباتی را درج میکنیم.
var OldMethod = $”{FirstName} {LastName}”;
همانگونه که مشاهده میکنید، ویژگی Interpolated Strings قالببندی رشتهها و خوانایی کدها را بهتر کرده و اجازه میدهد با کدنویسی کمتری فرآیند الحاق را انجام دهید. با اینحال، ویژگی فوق یک بهروزرسانی مهم دریافت کرده است. تا قبل از انتشار سیشارپ 10، برنامهنویسان نمیتوانستند از ویژگی Interpolated Strings استفاده کنند و مقدار بازگشتی را درون ثابتهای رشتهای قرار دهند و خروجی باید در یک متغیر درج میشد. از این پس، برنامهنویسان میتوانند مقدار بازگشتی Interpolated Strings را در یک ثابت رشتهای قرار دهند. ویژگی مذکور Constant Interpolated Strings نام دارد.
private const string Myfirstname = “HamidReza”;
private const string Mylastname = “Taebi”;
private const string NewMethod = $”{ Myfirstname } { Mylastname }”;
دقت کنید تنها ثابتهایی از نوع رشته از طریق روش فوق قابل الحاق به یکدیگر هستند و قرار دادن مقدار بازگشتی در یک ثابت رشتهای را امکانپذیر میکنند. ازاینرو، اگر تلاش کنید از تکنیک مذکور در ارتباط با نوعهای دیگر استفاده کنید با پیغام خطا روبرو میشوید.
تغییرات Lambda Expression در سیشارپ 10
یکی از کلمات کلیدی قدرتمند زبان برنامهنویسی سیشارپ، کلمه کلیدی var است. var به کامپایلر اجازه میدهد از روی مقادیر تخصیص داده شده به یک متغیر، نوع متغیر را تشخیص دهد و ضرورتی ندارد بهشکل صریح نوع متغیر را تعریف کنیم. تا قبل از انتشار نسخه 10، کامپایلر سیشارپ اگر با قطعه کدی شبیه به var MyDelegate = () => Console.WriteLine(“Hello”); روبرو میشد، بهدلیل اینکه توانایی تشخیص نوع Delegate را نداشت، پیغام خطا میداد. برنامهنویسان برای حل این مشکل مجبور بودند، نوع Delegate را مشخص کنند.
Action MyDelegate = () => Console.WriteLine(“Hello”);
در نسخه 10 ویژگی Inferred Delegate Type افزوده شده تا کامپایلر بتواند نوع Delegate را تشخیص دهد. دقت کنید عبارت سمت راست که Lambda Expression نام دارد باید برای کامپایر قابل فهم باشد. بهطور مثال، فرض کنید قصد استفاده از کلمه کلیدی var را دارید و از ترکیب نحوی مثل var multiple = x => x * x; استفاده میکنید. کامپایلر نمیتواند نوع x را تشخیص دهد، بنابراین پیغام خطایی تولید میکند. برای آنکه مشکل دستور فوق را برطرف کنیم، باید نوع x را دقیقا اعلام کنیم.
var multiple = (int x) => x * x;
موضوع مهم دیگری که باید به آن دقت کنید نوع خروجی Delegate است. اگر در نظر دارید Delegate بنویسید که دو نوع متفاوت را بازگرداند، کامپایلر نمیتواند نوع خروجی را تشخیص دهد و پیغام خطایی نشان میدهد. بهطور مثال، دستور زیر را در نظر بگیرید
var result = (int x) => x > 10 ? 40 : “forty”;
در دستور بالا، نوع خروجی بر مبنای مقدار x، از نوع صحیح یا رشتهای است. کامپایلر نمیتواند نوع خروجی را تشخیص دهد و پیغام خطایی نشان میدهد. در نسخه جدید، برنامهنویسان توانایی تعیین نوع خروجی Lambda Expression را دارند. برای اینکار، قبل از ورودیهای عبارت لامبدا، نوعی را تعیین میکنند که نوع خروجی عبارت لامبدا را مشخص میکند. حال اگر دستور بالا را بهشکل زیر بنویسیم مشکلی ایجاد نمیشود:
var result = object (int x) => x > 10 ? 40 : “forty”;
در دستور بالا، مشخص کردیم که نوع خروجی عبارت لامبدا از نوع Object است. نوع Object نشان میدهد که خروجی میتواند هر نوعی داشته باشد. در این حالت، دست کامپایلر برای تشخیص نوع خروجی Delegate باز است. به ویژگی مذکور «نوع بازگشتی لامبدا» (Lambda Return Type) گفته میشود.
تعریف خصلت روی عبارت لامبدا، ويژگی دیگر افزوده شده به عبارتهای لامبدا است. مانند متدهای عادی میتوان به عبارتهای لامبدا خصلت اضافه کرد که ویژگی مذکور «خصلت لامبدا» (Lambda Expression) نام دارد. بهطور مثال، فرض کنید در نظر داریم Attribute Obsolete را به عبارت لامبدا اضافه کنیم. ترکیب نحوی انجام اینکار بهصورت زیر است:
var result = [Obsolete] object (int x) => x > 10 ? 40 : “forty”;
اضافه شدن دو نوع جدید DateOnly و TimeOnly
DateTime از نوعهای قدیمی دنیای برنامهنویسی است که قدیمیها کاملا با آن آشنا هستند. همانگونه که اطلاع دارید، نوع DateTime اطلاعات زمان و تاریخ را نگهداری میکند. بهطور مثال، اگر دستور DateTime.Now را فراخوانی کنیم، تاریخ و زمان جاری را نشان میدهد. قبل از انتشار نسخه 10 سیشارپ، اگر تنها تاریخ یا زمان را نیاز داشتیم، باید بهصراحت نوع موردنظر را انتخاب میکردیم. در نسخه 10 دو نوع جدید DateOnly و TimeOnly اضافه شده تا تاریخ و زمان به شکل مجزا قابل استفاده باشند. ترکیب نحوی استفاده شده از نوعهای جدید بهصورت زیر است:
DateOnly Justdate = DateOnly.FromDateTime(DateTime.Now);
TimeOnly Justtime = TimeOnly.FromDateTime(DateTime.Now);
Console.WriteLine(Justdate);
Console.WriteLine(Justtime);
همانگونه که مشاهده میکنید، مقادیر تاریخ و زمان در دو شیء جدا نگهداری میشوند. در اینجا Justdate تنها تاریخ را نگهداری میکند و Justtime تنها زمان را نگهداری میکند. بزرگترین مزیتی که افزودن این دو نوع جدید برای برنامهنویسان دارد، هماهنگی بیشتر نوعهای تاریخ و زمان در SQL Server است، زیرا بهلحاظ دادهای شباهت بیشتری به هم دارند.
بهبود عملکرد struct
ساختارها در نگارش 10 سیشارپ تغییراتی داشتهاند. یکی از این تغییرات، تعریف سازنده بدون پارامتر در struct است. تا قبل از انتشار نسخه 10، امکان تعریف سازنده بدون پارامتر وجود نداشت و توسعهدهندگان مجبور بودند حداقل یک پارامتر برای یک struct تعریف کنند. ویژگی مذکور «سازندگان ساختار بدون پارامتر» (Parameterless Struct Constructors) نام دارد. برای آشنایی بهتر با مفهوم فوق به قطعه کد زیر دقت کنید:
struct Point
{
public Point()
{
X = 0;
Y = 0;
}
public double X { get; set; }
public double Y { get; set; }
}
همانگونه که مشاهده میکنید، ساختار Point یک سازنده بدون پارامتر دارد. دقت کنید که درون سازنده باید تمام خاصیتهای آنرا مقداردهی کنید، در غیر اینصورت با پیغام خطای زیر روبرو میشوید. در پیغام خطای زیر کامپایلر اعلام میدارد که Y مقداردهی اولیه نشده است.
Auto-implemented property ‘Point.Y’ must be fully assigned before control is returned to the caller.
قابلیت دیگری که همراه با نگارش 10 به ساختارها افزوده شده، struct field initializers نام دارد. ویژگی فوق اجازه میدهد هنگام تعریف خاصیت، آنرا مقداردهی کرد. توسعهدهندگان میتوانند از ترکیب زیر برای این منظور استفاده کنند:
public double X { get; set; } = 0;
راهحل فوق باعث میشود تا کامپایلر پیغام خطایی نشان ندهد، زیرا خاصیتهای ساختار همگی مقداردهی اولیه شدهاند. نکته ظریفی که هنگام استفاده از تکنیک فوق باید دقت کنید این است که انتهای دستور از سمیکالن (;) استفاده کنید.
قابلیت جالب دیگری که به ساختارها اضافه شده، With نام دارد. ویژگی مذکور اجازه میدهد یک کپی از شیء ساختهشده از ساختار تهیه کنید و در صورت نیاز برخی از خاصیتهای آنها را تغییر دهید.
var p1 = new Point(12, 13);
var p2 = p1 with { Y = 49 };
در قطعه کد بالا، شی p1 با مقادیر 12 برای X و 13 برای Y تعریف شده است. در خط دوم از کلمه کلیدی with برای ساخت یک کپی از p1 استفاده شده و در ادامه مقدار Y به 49 تغییر پیدا کرده است. در این حالت، شیء p2 با مقدار جدید ساخته میشود.
تغییرات مهم Property Pattern در نسخه 10
برای اولین بار در نسخه ۸ زبان سیشارپ، قابلیت Property Pattern معرفی شد. توسعهدهندگان میتوانستند از قابلیت فوق برای ارزیابی اشیاء با مقادیر خصلتهای مرتبط استفاده کنند که نقش مهمی در خوانایی و درک سادهتر کدها داشت. بهطور مثال، فرض کنید دو کلاس Person و Car دارید و در نظر دارید متدی بنویسید و این موضوع را بررسی کنید که آیا شخصی ماشینهای قرمز دارد یا خیر. برای انجام اینکار قطعه کدی مشابه زیر مینویسیم:
public class Person
{
public string Name { get; set; }
public Car? Car { get; set; }
}
public class Car
{
public string Color { get; set; }
}
static bool HasPersonRedCar(Person person) => person is { Car: { Color : “Red”} };
در ادامه یک شیء از کلاس Person ایجاد میکنیم و متد HasPersonRedCar را روی شیء جدید فراخوانی میکنیم.
var ali = new Person()
{
Name = “Alex”,
Car = new Car
{
Color = “Red”,
}
};
Console.WriteLine(HasPersonRedCar(Alex));
قطعه کد فوق مقدار true را باز میگرداند.
همانگونه که مشاهده میکنید، Car خاصیت شیء Person را بررسی میکند و اگر مقدار خاصیت Color برابر با Red باشد مقدار True را باز میگرداند، در غیر اینصورت مقدار False باز گردانده میشود. در مدل فوق، برای بررسی مقدار هر خاصیت مجبور هستیم یک جفت آکولاد باز و بسته بنویسیم. در نگارش 10 سیشارپ این قابلیت بهبود پیدا کرد تا نحوه نوشتن کدها سادهتر و خوانایی آنها بیشتر شود. بر مبنای اصطلاحات جدید، قطعه کد بالا را میتوان بهصورت زیر بازنویسی کرد:
static bool HasPersonRedCar(Person person) => person is { Car.Color : “Red” }
همانگونه که مشاهده میکنید آکولادهای پیرامون خاصیت Color حذف شده و از عملگر نقطه استفاده شده است.
برگرفته از سایت مجله شبکه
ابر کامپیوتر ها یا همان سوپر کامپیوتر ها برای پردازشهای سنگین به کار گرفته میشوند. این اصطلاح معمولاً برای سیستم هایی به کار میرود که قدرت پردازش اطلاعات فراوانی را در کسری از ثانیه را داشته باشند. تعریف ابر رایانه از زبان ویکی پدیا به صورت زیر است:
به کامپیوتری اطلاق میگردد که در زمان معرفی آن در زمینه میزان ظرفیت محاسبه در واحد زمان در دنیا پیشرو باشد. عبارت ابر رایانه برای اولین بار توسط مجله «نیویورک ورلد» برای اشاره به جدولسازهای آیبیام ( IBM ) در دانشگاه کلمبیا به کار رفت.
اینگونه کامپیوتر ها در درجه اول برای کارهای علمی و مهندسی مورد استفاده قرار می گیرند که نیاز به محاسبات بسیار سریع و پیچیده دارند.
از جمله مواردی که ابر کامپیوتر ها در تهیه آنها نقش دارند عبارت اند از:
آزمایش مدل های ریاضی برای پدیده های پیچیده فیزیکی
شبیه سازی آب و هوای آینده
شبیه سازی پیدایش و تکامل کیهان
شبیه سازی سلاح های هسته ای و عملکرد راکتور ها
تحقیقات بر روی مواد شیمیایی برای ساخت دارو های جدید
رمز نگاری
با کاهش هزینه های ابر کامپیوتر ها در دهه 1990، مشاغل بیشتری شروع به استفاده از ابر کامپیوتر ها برای تحقیقات و سایر مدل های مرتبط با تجارت کردند.
ویژگی ابر کامپیوتر ها
ابرکامپیوتر ها ویژگی های متمایز خاصی دارند. بر عکس کامیپوتر های معمولی، ابر رایانه ها معمولا دارای بیش از یک CPU ( پرادزشگر مرکزی ) هستند. این پردازشگرها مدارهای مخصوصی برای تفسیر اطلاعات و دستور العمل های برنامه و انجام محاسبات عملی و منطقی در توالی مناسب را در خود جای داده اند.
استفاده از چندین پردازنده پر قدرت برای محاسبات سنگین و پیچیده ضروری است. سیگنال های الکترونیکی نمی توانند سریعتر از سرعت نور حرکت کنند، بنابراین محدودیت سرعت اساسی ترین مشکل برای انتقال سیگنال و سوئیچینگ در مدار های CPU است.
بازیابی سریع داده ها و دستورالعمل های ذخیره شده برای رسیدن به سرعت محاسباتی بالا در CPU ها لازم است. بنابراین، اکثر ابرکامپیوتر ها از ظرفیت ذخیره سازی بسیار بزرگی استفاده میکنند. همچنین ابرکامپیوتر ها از قابلیت ورودی و خروجی بسیار سریعی برخوردار هستند.
یکی دیگر از ویژگی های متمایز کننده ابرکامپیوتر ها، استفاده آنها از حسگر برداری (vector arithmetic) برای پردازش است که باعث میشود ابرکامپیوتر ها بتوانند چندین هزار محاسبه را هم زمان پردازش کنند. به عنوان مثال ، یک ابر رایانه معمولی می تواند لیستی از میزان دستمزد ساعتی برای گروهی از کارگران کارخانه را با لیستی از ساعات کار اعضای آن گروه ضرب کند تا لیستی از سود آوری کسب شده توسط هر کارگر را به دست آورد.
کاربردهای ابرکامپیوتر ها
ابرکامپیوتر ها در ابتدا در برنامه های مربوط به امنیت ملی، از جمله طراحی سلاح های هسته ای و رمزنگاری استفاده می شدند. امروزه از آنها به طور معمول در صنایع هوافضا، نفت و صنایع اتومبیل استفاده می شود. علاوه بر این، ابر رایانه ها کاربردهای زیادی در زمینه های مربوط به مهندسی یا تحقیقات علمی پیدا کرده اند.
بدون شک ابرکامپوتر ها در رسیدن ما به فهم قابل قبولی در مورد کیهان، طراحی سلاح های هسته ای و رمزنگاری نقش فراوانی داشته اند. همچنین ابرکامپیوتر ها در پیش بینی های مربوط به آب و هوا کاربرد های فراوانی دارند. این پیش بینی ها بر اساس مدل های عددی صورت میگیرد.
با کاهش هزینه های ساخت ابرکامپیوترها و گسترش روز افزون تکنولوژی و فراهم شدن بستر مناسب برای بازی های آنلاین استفاده از این کامپیوتر ها در این صعنت نیز امری بدیهی گشت. در سال 2007 ابرکامپیوتر های بازی World of Warcraft توانست بیش از یک میلیون نفر را در دنیای آنلاین بازی جمع کنند و این گونه راه را برای پیشرفت در این زمینه باز کنند.
واحد اندازگیری در ابرکامپیوتر ها
ترافلاپ یا TFLOP در واقع کوتاه شده عبارت “teraflop” است. ترافلاپ روشی برای محاسبه ی قدرت سخت افزاری کامپیوتر بر اساس ظرفیت ریاضی است. یک ترافلاپ به ظرفیت پردازنده برای محاسبه یک تریلیون ممیز شناور (Floating Point) در هر ثانیه می گویند. مثلا وقتی می گوییم یک قطعه سخت افزاری دارای قدرت 6 ترافلاپ است، بدین معناست که می تواند در هر ثانیه 6 تریلیون (معادل 6 هزار میلیارد) ممیز شناور را محاسبه و پردازش کند.
محاسبه ممیز شناور چیست؟
محاسبه ممیزهای شناور یک روش مرسوم برای اندازه گیری قدرت پردازش سیستم هاست. در واقع همین که از ترافلاپ صحبت می کنیم، یک واحد جهانی و استاندارد برای محاسبه قدرت کامپیوتر ها خواهیم داشت.
اگر درس ریاضی دوران تحصیل خود را به خاطر بیاورید، ممیز شناور در واقع همان “اعداد حقیقی” هستند، که از دیدگاه محاسبات ریاضی، به هر نوع محاسبه محدود (کرانه دار) گفته می شود که از اعداد حقیقی (خصوصا در سیستم ده دهی) استفاده می کند.
در نهایت، ترافلاپ یعنی تعداد معادلات ریاضی بر اساس اعداد حقیقی که پردازنده قادر است در هر ثانیه پردازش کند. دستگاه های مختلف ممکن است به مقادیر متفاوتی از فلاپس نیاز داشته باشند. مثلا یک ماشین حساب معمولی تنها با 10 فلاپس می تواند تمام دستورات و محاسبات ریاضیِ شما را انجام دهد. در نتیجه وقتی از مگافلاپ (میلیون فلاپ)، گیگافلاپ (میلیارد فلاپ) و ترافلاپ (تریلیون فلاپ) صحبت می کنیم، می توانید تصور کنید که از چه میزان قدرت حرف می زنیم.
تولیدکنندگان سخت افزارهای مختلف معمولا برای بیان سرعت پردازش دستگاه های خود از واحد فلاپس استفاده می کنند.
هر پتافلاپ یک ترافلاسپ یا یک کوادریلیون (عدد یک با ۱۵ صفر به توان دو) واحد سرعت است.
ده ابر کامپیوتر برتر جهان
طبق جدیدترین رده بندی سریع ترین ابرکامپیوتر ها که اخیراً اعلام شد ده ابرکامپیوتر برتر این لیست نیز مشخص شد که ما نیز در این مقاله به این سوپر کامپیوتر ها نگاهی خواهیم انداخت.
10 – ابر کامپیوتر LASSEN
LASSEN برادر کوچک ابر کامپیوتر Sierra در آزمایشگاه ملی لارنس لیورمور، توسط IBM با همان معماری ساخته شده است. ابر رایانه لاسن برای تحقیقات غیر طبقع بندی طراحی و ساخته شده است. لاسن بر خلاف برادر بزرگ تر خود سیرا 18.2 پتافلاپ آهسته تر است.
این ابر کامپیوتر از 795 نود، 34,848 پردازشگر مزکزی ( CPUs ) و با 3,168 گرافیک ( GPUs ) انویدیا ( NVIDIA ) ساخته شده است، همچنین این ابر رایانه 253,440 رم ( RAM ) را در خود جای داده است.
9 – ابر کامپیوتر SUPERMUC-NG
در سال 2018، ابر کامپیوتر نسل جدید SuperMUC به طور رسمی در سوپرکامپیوتر های Leibniz در گارچینگ ( در نزدیکی مونیخ آلمان ) به بهره برداری رسید و در سال 2019 شروع به کار کرد. قدرتمندترین ابر کامپیوتر اتحادیه اروپا با فناوری شرکت های Lenovo و اینتل ساخته شده است.
SuperMUC قدرتمندترین سوپر کامپیوتری است که فقط توسط پردازننده های سری x86 کار میکند. سرعت پردازش ابر رایانه SUPERMUC-NG به 19.5 پتافلاپ می رسد.
8 – ابر کامپیوتر ABCI
در رده هشتم رنک برترین ابر کامپیوتر ها، سوپر کامپیوتر ABCI قرار گرفته است که توسط شرکت فوجیتسو ساخته شده و متعلق به انستیتوی ملی علوم و فناوری پیشرفته صنعتی ژاپن است. البته ناگفته نماند که این ابر کامپیوتر نسبت به رده بندی قبلی یک رده افت پیدا کرده است.
ابر رایانه ABCI به عنوان یک منبع هوش مصنوعی مبتنی بر ابر ( cloud-based ) طراحی و ساخته شده است که در اختیار شرکت ها و گروه های تحقیقاتی ژاپنی قرار گرفته است.
7 – TRINITY
ابر کامپیوتر TRINITY یکی از قدرتمند ترین کامپیوتر هایی دنیاست که شرکت Cray آن را توسط آزمایشگاه لس آلاموس ( Los Alamos National ) تولید کرده است و توانسته است در رده هفتم برترین سوپرکامپیوتر ها قرار بگیرد.
این دستگاه که نام خود را از اولین آزمایش هسته ای ایالات متحده در سال 1945 به ارث برده است، عمدتا به محاسبات مربوط به سلاح های هسته ای اختصاص یافته است. نخستین بمب اتمی جهان به سرپرستی دکتر رابرت اوپنهایمر طی پروژه منهتن در این آزمایشگاه ساخته شد.
قدرت پردازش ابر رایانه TRINITY به 3.678 گیگا فلاپ بر وات میرسد.
6 – ابر کامپیوتر PIZ DAINT
قدرتمندترین سیستم اروپا در رده ششم این فهرست قرار دارد. این سوپر کامپیوتر در مرکز ملی سوئیس قرار دارد. اسم این ابر کامپیوتر بر گرفته از کوه Piz Daint در آلپ است. در اواخر سال 2016، ابر رایانه Piz Daint به سه برابر رسد تا به رکورد 25 پتافلاپ دست یابد و در آن زمان در رتبه 3 ابر کامپیوتر ها قرار داشت.
این ابر کامپیوتر در واقع ارتقاء یافته ابر کامپیوتری است که توسط شرکت آمریکایی Cray و به دست پدر سوپر کامپیوتر های جهان یعنی سیمور کری ساخته شده است. پردازنده های Intel و NVIDIA آن سرعت 21.2 پتافلاپ را به آن می دهند. از Piz Daint در تحقیقات گسترده در زمینه علوم مواد، فیزیک، ژئوفیزیک، علوم زندگی، اقلیم شناسی و علوم داده استفاده میشود.
5 – frontera
ابرکامپیوتر frontera توسط شرکت Dell ساخته شده است و در مرکز محاسبات پیشرفته دانشگاه تگزاس قرار گرفته است. این سوپر کامپیوتر مجهز به پردازند های اینتل میباشد. این ابر کامپیوتر توانست به سرعت جای خود را میان برترین های این حوزه باز کند و در رده پنجم این لیست قرار بگیرد.
frontera در سپتامبر 2019 به عنوان سریعترین ابرکامپیوتر جهان که در یک دانشگاه قرار دارد، رونمایی شد. سه تیم علمی در زمینه تحقیقات مربوط به فیزیک سیاه چاله ها ، مکانیک کوانتومی ، طراحی دارو و مدل های اقلیمی پژوهش های خود را با این سیستم انجام داده اند.
قدرت 23.5 پتافلاوب این سوپرکامپیوتر در خدمت علم قرار گرفته است. این ظرفیت محاسباتی بسیار بالا در رشته های اختر فیزیک، علم مواد، انرژی، ژنومیک و الگوبرداری از بلایای طبیعی مفید واقع خواهد شد.
4 – TIANHE-2A
در رتبه چهارم این لیست ابر کامپیوتر چینی TIANHE-2A یا راه شیری قرار گرفته است. این سوپر کامپیوتر توسط دانشگاه ملی چین تهیه شده است و مجهز به پردازنده Intel Xeon با تعداد نزدیک به 5 میلیون هسته است که به آن اجازه میدهد سرعت آن تا به 61.4 پتافلاپ برسد، طبق صحبت های مقامات چینی از این سیستم برای محاسبات مربوط به امنیت دولت این کشور استفاده میشود.
3 – ابر کامپیوتر SUNWAY TAIHULIGHT
چین با ابر کامپیوتر TAIHULIGHT برای 2 سال در رتبه یک برترین ابرکامپیوتر ها قرار گرفته بود ولی با روی کار آمدن دو سوپر کامپیوتری که در ادامه مقاله خواهید خواند به رتبه سوم سقوط کرد. با این حال هنوز هم این سیستم جزو برترین های این حوزه محسوب میشود.
TAIHULIGHT در مرکز ملی تحقیقات مهندسی و فناوری محاسبات چین ساخته و در مرکز ملی ابرکامپیوترها در Wuxi نصب شده است. این سوپر کامپیوتر بر خلاف سایر دستگاه های هم رده خود، فاقد تراشه شتاب دهنده است و سرعت پردازنده آن به 93.0 پتافلاپ میرسد.
این ابر کامپیوتر حاصل یک نوع جنگ تجاری بین چین و امریکا است، زیرا ساخت آن در پاسخ به تحریم هایی بود که ایلات متحده بر چین در این زمینه اعمال کرده بود. این ابر رایانه در تحقیقاتی مانند شبیه سازی تولد و گسترش جهان با استفاده از 10 میلیارد ذره دیجیتال شرکت کرده است.
2 – ابرکامپیوتر Sierra
دومین ابر کامپیوتر در این رده بندی یعنی Sierra هم ساخت شرکت IBM است که برای آزمایشگاه ملی لارنس لیورمور در کالیفرنیا ساخته شده است. این سوپر کامپیوتر دارای 1,572,480 هسته است که توسط پردازندههای IBM Powe9 تهیه شده و توسط شتاب دهنده های Nvidia Volta GV100 تقویت شده است. عملکرد این ابر رایانه به 94.6 پتالفاپس رسیده است و در 6 ماه اخیر بدون تغییر بوده است.
1 – سوپر کامپیوتر Summit
بدون شک در حال حاضر IBM پیشتاز ابرکامپیوترها به حساب محسوب میشود. Summit قدرتمندترین سوپر کامپیوتر دنیا نیز ساخت این شرکت است که برای آزمایشگاه ملی اوک ریج ( Oak Ridge ) وزارت انرژی ایالات متحده در تنسی ساخته شده است.
قدرتمندترین ابر رایانه در جهان امروز Summit است که توسط IBM برای آزمایشگاه ملی اوک ریج وزارت انرژی ایالات متحده در تنسی ساخته شده است. این ابر کامپیوتر معادل دو زمین بسکتبال را اشغال می کند و به لطف 2.41 میلیون هسته خود به عملکرد بینظیر 148.6 پتالفاپ می رسد.
Summit با هشت برابر سرعت سریع ترین ابر کامپیوتر قبلی امریکا، یک پیشرفت بزرگ برای این کشور و حتی جهان به حساب می آید. تیم Oak Ridge می گوید این سیستم که 200 میلیون دلار برای ساخت آن هزینه شده است، اولین سوپرکامپیوتری است که برای استفاده در برنامه های هوش مصنوعی ساخته شده است.
برگرفته از سایت سپهر انفورماتیک
1)سنسور افزایش دما
2) سنسور افزایش رطوبت
3)سنسور قطع برق شبکه
4)سنسورقطع یو پی اس
5)سنسورافزایش دود
6)سنسورنشت آب
7)سنسورباز ماندن درب اتاق سرور
8)سنسور ورود غیر مجاز به اتاق سرور
9)سنسور ضربه به رک
10)سنسور نوسان برق
11)سنسور افزایش دمای رک
12)سنسور افزایش دمای اسپیلیت یاسنسور خرابی کولر
13)سنسور تخلیه باطری
14)سنسور باز شدن درب رک
15)سنسور سوختن کمپرسور کولر
16)سنسور یخ زده گی کندانسور
17)سنسور قطع فیوز کولر
18)هشدار عدم کارکرد صحیح سنسورها
19)سنسور وجود آتش
20)سنسور پیشگیری از احتراق
21)سنسور باردار شدن سیم نول
22)سنسور دوفاز شدن شبکه
23)سنسور افزایش گرد و غبار
24)سنسور خروج گاز سیستم برودتی
25)سنسور افزایش و یا کاهش ولتاژ شبکه از محدوده مجاز
یکی از بزرگترین ایدههایی که زنجیره بلوکی بهدنبال عملیاتی کردن آن است، کاهش نظارت متمرکز بر فناوریهای زیربنایی است. بهبیان دقیقتر، زنجیره بلوکی سعی دارد زیرساختی در اختیار مردم قرار دهد که عملکردش مستقل و فارغ از چارچوبهای نظارتی رایج باشد یا دستکم نظارت بهگونهای باشد که مردم نقش تاثیرگذاری در آن داشته باشند. بهطور کلی، خطمشیهایی که شرکتها و سازمانهای بزرگ برای دسترسی به زیرساختها و پلتفرمها وضع میکنند در بیشتر موارد با علایق مردم در تضاد است. گاهیاوقات، ممکن است با شرایط و ضوابط یک برنامه خاص موافقت کنید، بدون آنکه حتا نگاهی به آنها بیاندازید. به این ترتیب، شرکتها میتوانند کنترل بهتری روی دادههایی داشته باشند که در تعامل با نرمافزار یا پلتفرم خاصی تولید میکنید و از این دادههای شخصی برای دستیابی به سودآوری بیشتر استفاده کنند. فناوریهای غیرمتمرکز و منبعباز، راهکاری قدرتمند برای غلبه بر این مشکل ارائه کردهاند. در دنیای ارزهای دیجیتال، فناوریهای غیرمتمرکز نشان دادند که چگونه زیرساختهایی مثل زنجیره بلوکی قادر به حذف وابستگی به مکانیزمهای سنتی هستند. یکی از فناوریهای غیرمتمرکز که این روزها مورد توجه رسانهها و کاربران قرار گرفته، زنجیره بلوکی پولکادات است.
پولکادات چیست؟
پولکادات با ارائه بستری مناسب، به توسعهدهندگان اجازه ساخت برنامههای غیرمتمرکزی را میدهد که با مشکل دستکاری یا مسدود شدن روبرو نیستند و علاوه بر این امکان انجام تراکنشهای سریع و ارزان را بهوجود میآورد؛ بهطوری که اکنون بهعنوان رقیب جدی اتریوم شناخته میشود. پولکادات شبکهای است که هزاران زنجیره بلوکی و ارز دیجیتال را میزبانی میکند و سرمایهگذاران زیادی جذب کرده است. به همین دلیل مورد توجه رسانهها قرار گرفته است. در اصل، پولکادات، زنجیره بلوکی تازهوارد به اکوسیستمی است که زیر سلطه بیتکوین و اتریوم است. با اینحال، پولکادات سعی دارد خود را بهعنوان زنجیره بلوکی نسل بعدی معرفی کند و برای ترکیب یک شبکه کامل از زنجیرههای بلوکی خاص طراحی شده است.
نکته جالب در مورد پولکادات این است که امکان عملکرد یکپارچه زنجیرههای بلوکی همراه با مقیاسپذیری را بهوجود میآورد. از آنجایی که پولکادات انتقال هر نوع داده را در هر نوع زنجیره بلوکی امکانپذیر میکند، میتواند برای کاربردهای مختلف در دنیای واقعی استفاده شود. مهمتر از همه، پولکادات میتواند بهترین ویژگیهای زنجیرههای بلوکی را برای ایجاد فرصتهای جدید برای ورود به بازارهای غیرمتمرکز، ادغام کند. پلتفرم جدید زنجیره بلوکی میتواند از طریق برنامههای کاربردی و ارائهدهندگان مختلف، قابلیتهای بهتر و کارآمدتری را برای دسترسی به خدمات ارائه کند.
برای دستیابی به چنین هدفی، پولکادات ارز دیجیتالی بهنام دات (DOT) را ارائه کرده تا هزینههای موردنیاز برای توسعه این زیرساخت تامین شوند. در اصل، هر فرد با داشتن دات میتواند یک حق رأی را برای آینده این شبکه بهدست آورد. سرمایهگذاری روی ارز دات، مانند دیگر ارزهای دیجیتال مثل بیتکوین و اتر، در واقع سرمایهگذاری روی آینده شبکه است و قیمت این ارز دیجیتال هم با عرضه و تقاضا و امیدواریها نسبت به آینده شبکه پولکادات نوسان دارد. با اینکه دات، ارز دیجیتال اصلی شبکه پولکادات است، هر کاربری میتواند روی این شبکه برای خود یک زنجیره بلوکی و یک ارز دیجیتال مجزا ایجاد کند و از مدل امنیت اشتراکی شبکه پولکادات بهرهمند شود. عرضه پولکادات برخلاف ارزهای دیجیتالی دیگر بر اساس ماینینگ نیست و واحدهای آن با روشی که شبیه به اثبات سهام است، توزیع میشوند.
تاریخچه پولکادات
قبل از پرداختن به جزئیات بیشتر در مورد اکوسیستم پولکادات، اجازه دهید نگاهی به تاریخچه پولکادات بیندازیم. پولکادات توسط شرکت پریتی تکنالجیز (Parity Technologies) تحت رهبری گاوین وود (Gavin Wood) و جوتا استینر (Jutta Steiner) توسعه داده شده است. هر دوی آنها از مدیران ارشد اسبق زیرساخت اتریوم بودند. بد نیست بدانید که پروژه پولکادات پشتیبانی بنیاد وب3 (Web3 Foundation) را دارد و بخش عمدهای از بودجه موردنیاز برای پژوهش و توسعه این زیرساخت را تامین میکند.
شرکت پریتی در سال 2015 کار روی نرمافزار نود (Node) اتریوم را آغاز کرد که بهعنوان Parity Ethereum Client نامیده میشد. با اینحال، پریتی تمرکز خود را از آن پروژه بهسمت پولکادات و پروژه مرتبط دیگر، یعنی سابستریت (Substrate)، زیرساخت خاص شبکه پولکادات، تغییر داد. به این ترتیب، سفر پولکادات در نوامبر 2017 با وجود توسعهدهندگانی که اولین کد را در گیتهاب منتشر کردند، آغاز شد. متعاقباً، این شرکت دو اثبات مفهومی در سال 2018 معرفی کرد که با اولین پاراچین پولکادات در جولای 2018 همراه بود. پاراچین (Parachain) را میتوان نوع خاصی از شبکههای زنجیره بلوکی در نظر گرفت که ساختاری خاص برای مدیریت دادهها و اطلاعات دارند و بهطور موازی در اکوسیستم پولکادات اجرا میشوند. با این تفاوت که با اتصال به شبکه مرکزی، نیازی به تعریف نودهای مجزا نیست. پولکادات در ماه می 2020 در قالب یک نسخه اولیه بهطور رسمی راهاندازی شد و چند ماه بعد، انتقال توکن را در آگوست 2020 فعال کرد. برای آنکه بفهمیم چرا زنجیره بلوکی فوق در این دو سال محبوبیت زیادی بهدست آورده، در ادامه بهترین ویژگیهای آن را بررسی میکنیم.
ویژگی پولکادات چیست؟
برنامههای کاربردی زنجیره بلوکی پولکادات میتوانند تحولات بزرگی در حوزههای مختلف، مثل مدیریت هویت، پیگیری دقیق وضعیت کالاها، امور مالی، اینترنت اشیاء، حاکمیت و تمرکززدایی وب بهوجود آورند.
شاردینگ ناهمگون (Heterogeneous Sharding)
شاردینگ در دنیای زنجیره بلوکی به تکنیکی اشاره دارد که دستیابی به سه مولفه مقیاسپذیری، امنیت و غیرمتمرکز ماندن را تضمین میکند. شاردینگ ناهمگون به این معنا است که چند زنجیره بلوکی مستقل که پاراچین نام دارند را از طریق یک شبکه واحد به یکدیگر متصل کنیم و به آنها اجازه دهیم تراکنشها را بهشکل موازی پردازش کنند و در بستری امن با یکدیگر تبادل داده داشته باشند. برنامههای زنجیره بلوکی برای تطبیق ویژگیها و تائید تراکنشها باید کارهای زیادی را انجام دهند که مستلزم صرف توان پردازشی سنگین است. برنامههای زنجیره بلوکی نیازمند ارتباط مستمر گرهها با یکدیگر هستند. بهبیان دقیقتر اگر امکان برقراری ارتباط بین گرهها و تایید تراکنشها وجود نداشته باشد، امنیت و پایداری شبکه بهشدت کاهش پیدا میکند. معماری پولکادات بیانگر این موضوع است که این زنجیره بلوکی شارد شده است. بهعبارت دیگر، زنجیرههای مختلف در یک شبکه خاص را بههم متصل میکند. پولکادات باید به زنجیرههای مختلف اجازه دهد تا تراکنشها را بهطور همزمان با یکدیگر پردازش کنند.
پولکادات میتواند تبادل انعطافپذیر دادهها بین زنجیرهها را بهطور ایمن فعال کند. مدل منحصربهفرد شاردینگ ناهمگون پولکادات، تضمین میکند هر زنجیره در شبکه میتواند بهجای پیروی از یک پروتکل همهکاره که اتریوم و دیگر پلتفرمهای قرارداد هوشمند از آن استفاده میکنند، از پروتکلهایی که برای انجام کارهای مختلف بهینهسازی شدهاند استفاده کند. پشتیبانی از زنجیرههای اضافی و انعطافپذیری در ارتباط با کاربردهای خاصی که زنجیره بلوکی پولکادات ارائه میکند، راه را برای ارائه ایدههای خلاقانه هموار میکند.
مقیاسپذیری
زنجیرههای بلوکی برای پردازش حجم عظیم تراکنشهای غیرمتمرکز که ممکن است در آینده با آن روبرو شوند با محدودیتهایی مواجه هستند. توان عملیاتی محدود و سازوکار اجماع پیچیده و زمانبر در زنجیرههای بلوکی ابتدایی، باعث تاخیر در انجام تراکنشها شده و در صورت شلوغی شبکه، کارمزدها را بهشدت افزایش میدهند.
توجه به این نکته مهم است که یک پلتفرم زنجیره بلوکی نمیتواند مجموعهای از برنامههای کاربردی غیرمتمرکز که مدام در حال توسعه هستند را پشتیبانی کند. مقیاسبندی با توان عملیاتی محدود باعث شد تا زنجیرههای بلوکی اولیه بهسرعت با محدودیت روبرو شوند و توانایی پشتیبانی از برخی کاربردهای دنیای واقعی را نداشته باشند. برخی از مشکلات مقیاسپذیری، ناشی از این واقعیت هستند که در بیشتر زنجیرههای بلوکی، نودهای اعتبارسنج مجبور هستند تراکنشها را یکبهیک بررسی و تأیید کنند. این موضوع باعث میشود شبکههای زنجیره بلوکی، همواره با گلوگاههای پرترافیک روبرو شوند، اما توسعهدهندگان پولکادات توانستند راهحلی پیدا کنند.
اکوسیستم پولکادات زنجیرههای بلوکی مختلف را به یک شبکه شاردشده خاص میآورد و تضمین میکند که تراکنشهای مختلف بهطور موازی پردازش میشوند. این سیستم میتواند در رفع گلوگاهها که در شبکههای معمولی مشهود هستند، مفید باشد. علاوه بر این، پولکادات میتواند با ویژگی جدیدی بهنام ریلیچین (relay chain) تودرتو مقیاسپذیری را تضمین کند. ریلیچینهای تودرتو میتوانند به افزایش تعداد شاردهایی که میتوانید به شبکه اضافه کنید، کمک کنند.
محدوده ارتقاهای بدون فورک
نکته مهم دیگر در اکوسیستم پولکادات، ارتقاهای بدون انشعاب (فورک) شبکه است. برنامهها، مرورگرها و بازیها اغلب بهروزرسانیها را دریافت میکنند و بیشتر آنها بهطور خودکار این فرآیند را طی میکنند. بهطور کلی، توسعهدهندگان قبل از اینکه باگها مشکلساز شوند، بهسرعت آنها را برطرف میکنند. با گذشت زمان، با دستیابی به راهحلهای بهتر، ویژگیهای جدیدی به برنامهها اضافه میشوند. درست مانند نرمافزارهای کاربردی، راهحلهای زنجیره بلوکی برای حفظ ارتباط، نیاز به ارتقاء دارند. از سوی دیگر، ارتقای زنجیرههای بلوکی میتواند کار دشواری باشد. زنجیرههای بلوکی معمولی برای انجام بهروزرسانی نیازمند انشعاب شبکه هستند؛ به این معنا که زنجیرهای جدید با قوانینی جدید تشکیل شود و کاربران را به استفاده از این زنجیره ترغیب کند. این درحالی است که برنامهریزی و اجرای یک انشعاب ماهها زمان میبرد و از همه مهمتر این که انشعابهای زیاد در شبکه باعث چنددستگی جامعه کاربران و توسعهدهندگان شبکه میشود.
شبکه پولکادات با تحول این فرایند، امکانی را بهوجود آورد تا زنجیرههای بلوکی بدون نیاز به انشعاب کردن زنجیره، خود را بهروزرسانی کنند. پولکادات با معرفی بهروزرسانیهای بدون انشعاب، انقلابی در فرآیند ارتقاء زنجیره بلوکی ایجاد کرد. این بهروزرسانی از طریق سیستم شفاف حاکمیتی درونزنجیرهای (On-Chain Governance) پولکادات انجام میشود. ویژگی بهروزرسانی بدون فورک در پولکادات تضمین میکند که پروژهها چابکی بهتری دارند. بهعلاوه، این ارتقاء تضمین میکند که پروژهها میتوانند مطابق با پیشرفت فناوری، سازگاری و تکامل پیدا کنند. مهمتر از همه، زنجیره بلوکی پولکادات مخاطرات مربوط به انشعابات بحثبرانگیز را کاهش میدهد.
حاکمیت شفاف
علاوه بر این، پلتفرم پولکادات یکی از مشکلات مهم پلتفرمهای زنجیره بلوکی رایج را برطرف میکند. زنجیرههای بلوکی قبلی از هیچ سازوکار رسمی حاکمیتی برخوردار نبودند. سهامداران هیچ قدرتی برای پیشنهاد یا رد اصلاحات پروتکل نداشتند، مگر اینکه حمایت افراد صاحب نفوذ در پروژهها را بهدست میآوردند. با این توصیف، چه چیزی پولکادات را خاص میکند؟ پولکادات برای هر فردی که مالکیت دات دارد، امتیازات حاکمیتی را فعال میکند. دارندگان دات میتوانند پیشنهادهایی برای تغییر پروتکل ارائه دهند یا به پیشنهادات موجود رأی دهند. علاوه بر این، آنها میتوانند در انتخاب اعضای شورا که نماینده سهامداران در سیستم حاکمیتی پولکادات هستند، نقش داشته باشند.
طراحی مشارکتی
آخرین و مهمترین جنبهای که نشان میدهد پولکادات چیست و نحوه دید ما نسبت به زنجیره بلوکی را تغییر میدهد، سازگاری میانزنجیرهای است. پیش از این، زنجیرههای بلوکی مثل شهرهای محصورشده کار میکردند که به شبکههای دیگر دسترسی نداشتند. این در حالی است که ارتباطات میانزنجیرهای و تعاملپذیری از نیازهای ضروری است. قابلیت تعاملپذیری میانزنجیرهای و انتقال پیام میتواند به شاردها در برقراری ارتباط، مبادله ارزش و اشتراکگذاری عملکردها کمک کرده و نوآوریهای بیشتر و بهتری را بههمراه داشته باشد. پولکادات مزایای قابل توجهی در پلزنی زنجیرههای بلوکی ارائه میدهد که به شاردهای پولکادات در تعامل با پروتکلهای محبوب اقتصاد غیرمتمرکز (DeFi) و داراییهای مجازی در شبکههای خارجی کمک میکند.
چه چیزی به پولکادات کمک میکند تا قابلیتهای زیادی ارائه دهد؟
سادهترین و صریحترین پاسخ به این سوال، معماری پولکادات است. اتصال درست تمام نقاط در پولکادات میتواند قابلیتهای کاربردی آن را بهشکل بهتری نشان دهد. همانگونه که اشاره شد شبکه پولکادات از روش شاردینگ ناهمگون استفاده میکند. به این معنا که زنجیرههای بلوکی مستقل را از طریق یک شبکه واحد به یکدیگر متصل میکند و به آنها این امکان را میدهد که تراکنشها را بهصورت موازی پردازش کنند و در بستری امن با یکدیگر تبادل داده داشته باشند. پاراچینها به ریلیچین پولکادات متصل میشوند که از امنیت آنها مراقبت میکند. علاوه بر این، پاراچینها میتوانند از طریق پلها با شبکههای خارجی ارتباط برقرار کنند. هر زنجیره بلوکی برای کارکرد درست به مولفههای کلیدی قدرتمندی نیاز دارد که از مولفههای مهم معماری پولکادات به موارد زیر باید اشاره کرد:
ریلیچین (Relay Chain)
ریلیچین کلیدیترین مولفه پولکادات است که از امنیت، تعاملپذیری میانزنجیرهای و ویژگیهای توافقی شبکه پولکادات پشتیبانی میکند. هر یک از زنجیرههای بلوکی مستقل شبکه پولکادات با اتصال به ریلِیچین و اشتراکگذاری بلاکهای خود در این زنجیره، از مدل امنیت اشتراکی پلتفرم پولکادات بهرهمند میشوند. نودهای اعتبارسنج شبکه پولکادات با سهامگذاری توکنهای دات روی ریلِیچین، مسئولیت اعتبارسنجی و تأیید بلاکهای ارسالی از تمام زنجیرههای بلوکی شبکه را برعهده میگیرند. علاوه بر این، همه تصمیمگیریهای حاکمیتی شبکه، با مشارکت صاحبان توکنهای دات در همهپرسیهای برگزارشده در ریلِیچین انجام میگیرد.
پاراچینها (Parachains)
زنجیرههای موازی (Parallelized Chains)، زنجیرههای بلوکی مستقل با توکنها و قابلیتهای خاص هستند که عملکرد کلی سیستم را بهبود میبخشند. بنابراین تراکنشهای شبکه، بهصورت موازی روی پاراچینها اجرا میشوند و در بازههای زمانی مشخص روی ریلِیچین ثبت میشوند. هر یک از این بازههای زمانی مشخص یک اسلات (Slot) نامیده میشود و هر پاراچین، اسلات مخصوص به خود را روی ریلِیچین در اختیار دارد. تراکنشهای انجامشده در هر پاراچین، توسط نودهای رابط (Collators) پردازش شده و در بلاکها ثبت میشوند. علاوه بر این، هر پاراچین میتواند با ارسال و دریافت تراکنش از دیگر پاراچینها، با آنها در ارتباط باشد. پاراچینها میتوانند برای اتصال به ریلیچین، شیوه پرداخت براساس مصرف (Pay-As-You-Go) را دنبال کنند یا برای اطمینان از اتصال مداوم، یک اسلات اجاره کند.
پلها(Bridges)
پلها، زنجیرههای بلوکی ویژهای هستند که برای فعال کردن شاردهای پولکادات برای اتصال و برقراری ارتباط با شبکههای خارجی مثل اتریوم اصلاح شدهاند. این پلها با ساختار غیرمتمرکز و بدون نیاز به اعتماد، امکان ارسال و دریافت تراکنش از دیگر زنجیرههای بلوکی سنتی مثل بیتکوین و اتریوم را بهوجود میآورند. با بهرهگیری از فناوری پلهای زنجیره بلوکی، مشکل ایزوله بودن زنجیرههای بلوکی برطرف شده و تعاملپذیری میان شبکههای بلاکچین مختلف امکانپذیر میشود.
توکن DOT
عنصر مهم دیگر در درک زنجیره بلوکی پولکادات، توکن بومی آن دات است. توکن دات در زنجیره بلوکی پولکادات به سه دلیل مهم زیر استفاده میشود:
حاکمیت شبکه (Governance)
سهامگذاری (staking)
وثیقهگذاری (Bonding)
سخن پایانی
کاملاً مشهود است که پولکادات راه جدیدی را برای استفاده از شبکههای زنجیره بلوکی ارائه میدهد. درک اینکه پولکادات چیست، کمک میکند شناخت بهتری از قابلیتهای کاربردی این زیرساخت داشته باشیم و بتوانیم در پروژههای مهم از آن استفاده کنیم. صنایع مختلف ارزش واقعی زنجیره بلوکی را کشف کردهاند و برخی از آنها از زنجیرههای بلوکی جدید در فرایندهای تجاری بزرگ خود استفاده کردهاند. پولکادات میتواند کمک کند تا عملکرد چند زنجیره بلوکی را بهدست آورید و از ویژگیهای شاخص هر پلتفرم به بهترین شکل استفاده کنید. اینگونه بهنظر میرسد که در بلندمدت، توسعهدهندگان پولکادات قابلیتهای مختلف آن را اصلاح و نسخههای بهتری را ارائه خواهند کرد. پولکادات این ظرفیت را دارد تا تعریف واقعی از تمرکززدایی بر بستر زنجیره بلوکی را ارائه دهد.
شرکت پیشران صنعت ویرا با اساس نامه اتوماسیون صنعتی و کنترل ابزار دقیق و ساخت تابلوهای برق فشار قوی و ضعیف از سال 92 تاسیس گشت و ازهمان ابتدا در حوزه کاربرد ابزار دقیق در bms و سپس تولید و ساخت آنها قدم نهاد و در ادامه مسیر توانست با اتکا به تجربیات چندین ساله و استخدام نیروهای متخصص برق عملا جزو شرکتهایی باشد که محصولات قابل اتکایی با عناوین مانیتورینگ شرایط محیطی اتاق سرور -کنترلرهای دمای دیتا سنتر -دیتالاگرهای سردخانه و انبار -هشدار دهنده های دمای یخچال و فریزر و شمارشگرهای نمایشگاهی و فروشگاهی و تابلوهای برق متنوع با کاربردهای مختلف روانه بازار نماید در حال حاضر سیستمهای کنترل دما و رطوبت اتاق سرور این شرکت تنها سیستم مبتنی بر سخت افزار صنعتی plc-hmi در ایران است.