Cesar  Hamill

Cesar Hamill

1650279480

Što je RPC (Remote Procedure Call) u Blockchainu

U ovom članku ćemo naučiti šta je RPC, aplikacije i važnost RPC-a u Blockchainu.

1. Šta je Remote Procedure Call (RPC)?

Remote Procedure Call je softverski komunikacioni protokol koji jedan program može koristiti da zatraži uslugu od programa koji se nalazi na drugom računaru na mreži bez potrebe da razumije detalje mreže. RPC se koristi za pozivanje drugih procesa na udaljenim sistemima kao što je lokalni sistem. Poziv procedure je ponekad poznat i kao  poziv funkcije ili  poziv potprograma .

RPC koristi model klijent-server. Program koji traži je klijent, a program koji pruža uslugu je server. Poput lokalnog poziva procedure, RPC je sinhrona operacija koja zahtijeva da se program koji zahtjeva suspenduje dok se ne vrate rezultati udaljene procedure. Međutim, upotreba lakih procesa ili niti koje dijele isti adresni prostor omogućava da se više RPC-ova izvodi istovremeno.

The interface definition language (IDL) -- the specification language used to describe a software component's application programming interface (API) -- is commonly used in Remote Procedure Call software. In this case, IDL provides a bridge between the machines at either end of the link that may be using different operating systems (OSes) and computer languages.

What does RPC do?

Kada se programski izrazi koji koriste RPC okvir kompajliraju u izvršni program, stub je uključen u prevedeni kod koji djeluje kao predstavnik koda udaljene procedure. Kada se program pokrene i izda poziv procedure, stub prima zahtjev i prosljeđuje ga klijentskom runtime programu na lokalnom računalu. Prvi put kada se klijentski stub pozove, on kontaktira server imena da odredi transportnu adresu na kojoj se server nalazi.

Klijentski runtime program ima znanje o tome kako se obratiti aplikaciji udaljenog računara i servera i šalje poruku preko mreže koja zahtijeva udaljenu proceduru. Slično, server uključuje runtime program i stub koji sučelje sa samom udaljenom procedurom. Protokoli odgovora i zahtjeva vraćaju se na isti način.

Kako funkcioniše RPC?

Kada se pozove udaljeni poziv procedure, okruženje poziva se suspenduje, parametri procedure se prenose preko mreže u okruženje u kojem se procedura treba izvršiti, a procedura se zatim izvršava u tom okruženju.

Kada se procedura završi, rezultati se prenose nazad u okruženje koje poziva, gde se izvršavanje nastavlja kao da se vraća iz redovnog poziva procedure.

Tokom RPC-a odvijaju se sljedeći koraci:

  1. Klijent poziva klijenta stub. Poziv je poziv lokalne procedure s parametrima gurnutim u stog na normalan način.
  2. Klijentski stub pakuje parametre procedure u poruku i upućuje sistemski poziv da pošalje poruku. Pakovanje parametara procedure naziva se razvrstavanje .
  3. Lokalni OS klijenta šalje poruku sa klijentske mašine na mašinu udaljenog servera.
  4. OS servera prosljeđuje dolazne pakete na stub servera.
  5. Serverski stub raspakuje parametre -- koji se naziva demarshalling -- iz poruke.
  6. Kada je serverska procedura gotova, vraća se na stub servera, koji maršalizira vraćene vrijednosti u poruku. Serverski stub zatim predaje poruku transportnom sloju.
  7. Transportni sloj šalje rezultujuću poruku nazad klijentskom transportnom sloju, koji šalje poruku nazad klijentskom stubu.
  8. Klijentski stub demaršira povratne parametre, a izvršenje se vraća pozivaocu.

Vrste RPC-a

Postoji nekoliko RPC modela i implementacija distribuiranog računarstva. Popularan model i implementacija je Distributed Computing Environment (DCE) Open Software Foundation (OSF). Institut inženjera elektrotehnike i elektronike (IEEE) definira RPC u svojoj ISO specifikaciji poziva za udaljene procedure, ISO/IEC CD 11578 N6561, ISO/IEC, novembar 1991.

Primjeri RPC konfiguracija uključuju sljedeće:

  • Normalna metoda rada u kojoj klijent upućuje poziv i ne nastavlja sve dok server ne vrati odgovor.
  • Klijent upućuje poziv i nastavlja sa vlastitom obradom. Server ne odgovara.
  • Mogućnost slanja nekoliko neblokirajućih poziva klijenata u jednoj grupi.
  • RPC klijenti imaju mogućnost emitiranja, tj. mogu slati poruke na mnoge servere i zatim primati sve rezultirajuće odgovore.
  • Klijent obavlja neblokirajući klijent/server poziv; server signalizira da je poziv završen pozivanjem procedure povezane s klijentom.

RPC obuhvata transportni sloj i sloj aplikacije u modelu mrežne komunikacije Open Systems Interconnection (OSI). RPC olakšava razvoj aplikacije koja uključuje više programa distribuiranih u mreži. Alternativne metode za komunikaciju klijent-poslužitelj uključuju red poruka i IBM-ovu naprednu komunikaciju između programa (APPC).

Prednosti i mane RPC-a

Iako se može pohvaliti širokim spektrom prednosti, sigurno postoji dio zamki kojih bi oni koji koriste RPC trebali biti svjesni.

Evo nekih od prednosti koje RPC pruža programerima i menadžerima aplikacija:

  • Pomaže klijentima da komuniciraju sa serverima putem tradicionalne upotrebe poziva procedura na jezicima visokog nivoa.
  • Može se koristiti u distribuiranom okruženju, kao iu lokalnom okruženju.
  • Podržava modele orijentirane na proces i niti.
  • Skriva interni mehanizam za prosljeđivanje poruka od korisnika.
  • Zahtijeva samo minimalan trud za ponovno pisanje i razvoj koda.
  • Pruža apstrakciju, tj. priroda mrežne komunikacije koja prenosi poruku je skrivena od korisnika.
  • Izostavlja mnoge slojeve protokola radi poboljšanja performansi.

S druge strane, neki od nedostataka RPC-a uključuju sljedeće:

  • Klijent i server koriste različita okruženja izvršavanja za svoje odgovarajuće rutine, a upotreba resursa (npr. datoteka) je takođe složenija. Shodno tome, RPC sistemi nisu uvijek prikladni za prijenos velikih količina podataka.
  • RPC je vrlo ranjiv na neuspjeh jer uključuje komunikacioni sistem, drugu mašinu i drugi proces.
  • Ne postoji jedinstveni standard za RPC; može se implementirati na razne načine.
  • RPC je samo zasnovan na interakciji i kao takav ne nudi nikakvu fleksibilnost kada je u pitanju hardverska arhitektura.

2. Poziv udaljene procedure u Blockchainu 

Ako ste ikada poslali tokene na pogrešnu mrežu, trebat će vam RPC originalne mreže da biste ih oporavili.

Ne možete koristiti RPC-ove u Exodus-u, ali sa novčanikom kao što je MetaMask, možete se povezati na prilagođene mreže da biste vidjeli svoje tokene u MetaMasku koristeći RPC-ove.

Akronim RPC je skraćenica za Remote Procedure Call. RPC-ovi omogućavaju komunikaciju sa serverima na daljinu i pružaju mogućnost izvršavanja programa na odvojenoj lokaciji. U smislu blockchaina, RPC dozvoljava pristup serverskom čvoru na navedenoj mreži i omogućava vam komunikaciju i interakciju s tim blockchainom.

Zašto su nam potrebni RPC?

Da bismo stupili u interakciju s blockchainom, potreban nam je način da pristupimo mrežnim serverima putem prikladne i generičke opcije za obavljanje operacija poput pregleda stanja, kreiranja transakcije ili interakcije sa pametnim ugovorom. RPC-ovi su ono što nam daje mogućnost da uspostavimo tu vezu sa serverima.

Kada programer kreira decentraliziranu aplikaciju (dApp) s RPC mogućnostima, korisnik će tada moći izvršavati zahtjeve i komunicirati s blockchainom. Na primjer, ako ste ikada koristili decentraliziranu razmjenu (DEX) tako što ste povezali novčanik, kao što je MetaMask, vaša veza i komunikacija se usmjeravaju kroz RPC za komunikaciju s blockchain serverom.

Primjena RPC-a u Crypto

Evo 3 popularne aplikacije RPC-a u Crypto-u:

  • Upiti u blockchain podatke bez pristupa privatnom čvoru

Kada prave aplikacije na Blockchain-u, programeri također trebaju pristup mnogim vrstama informacija o Blockchain-u, kao što su; broj bloka, vezu s čvorom, transakcijska sredstva i podatke o historiji blockchaina.

Oni mogu uputiti zahtjeve svom željenom blockchainu u JSON-u i dobiti odgovor s informacijama koje su im potrebne. Da bi to učinili, programeri imaju nekoliko izbora, ali najlakše i najbrže rješenje za trenutni pristup blockchain-u je korištenje RPC usluga.

  • Pojednostavite proces izgradnje Blockchain aplikacija

RPC sloj je također koristan pri izgradnji aplikacija na Blockchain-u jer uvelike pojednostavljuje rad programera. Na primjer;

Ako želite da korisnici mogu vidjeti kripto stanja iz novčanika koji nije vaš novi web-mjesto projekta, nećete morati kreirati novi novčanik, samo trebate napraviti API koji može zahtijevati komunikaciju s novčanikom vašeg novog projekta. korisnicima da pronađu ono što korisnici drže i prikažu ih na sučelju vaše web stranice.

Pokrenite pozive za pristup velikim količinama informacija iz Blockchaina

Programeri mogu pokrenuti naredbe Calls za obavljanje zadataka kao što su šifriranje novčanika, kreiranje JSON objekata u podatke čitljive ljude, pronalaženje trenutne veličine bloka, generiranje adresa s više potpisa, .... Ovo su vitalni dijelovi informacija koje graditelji trebaju da kreiraju svoje vlastite blockchain platforme i usluge.

Važnost RPC-a u Blockchainu

Svim dApps-ima (decentraliziranim aplikacijama) potreban je način za komunikaciju s blockchainima. Bez sredstava komunikacije, dApps ne bi mogli pristupiti informacijama i obavljati transakcije na blockchainu na kojem rade.

RPC podržava usluge kao što su MetaMask i druge Web 3.0 aplikacije koje se povezuju na informacije na različitim blockchainima. Sa RPC-ovima, oni mogu automatski stupiti u interakciju s blockchain podacima i obavljati zadatke poput transakcija novčanika kriptovaluta. Također omogućava svakome da se poveže na blok lanca čvora kako bi kreirao decentralizirane aplikacije (dapps).

Primjer kako RPC funkcionira: Kada korisnik pristupi DEX-u ili koristi MetaMask za obavljanje transakcije, njegov zahtjev prolazi kroz RPC da ih poveže sa čvorovima koji drže podatke iz lanca blokova.

Naročito u kontekstu L1 Blockchaina koji niču kao gljive nakon kiše, potražnja za korištenjem RPC-a za povezivanje s Blockchainima veća je nego ikad. Odavde je moguće da je RPC suštinski alat koji programeri blockchaina trebaju koristiti za izgradnju decentraliziranih aplikacija i projekata.

Ograničenja RPC čvora

Postoje 2 glavna tipa RPC-a na tržištu danas;

  • Javni RPC (Javni RPC).
  • RPC kao usluga (RPC Private).

Za obične korisnike, javni RPC (Public RPC) kao javno dobro je obično obezbeđen od strane osnovnog Blockchain-a koji korisnici mogu koristiti, dobar primer ovoga; Kada žele pristupiti Poligonu ili drugom EVM Blockchainu, korisnici su upućeni da samo prilagođena RPC mreža može koristiti Metamask za interakciju na tom Blockchainu.

Javni RPC omogućava svakome da se poveže na čvorove da zadrži informacije potrebne za kreiranje decentralizovanih aplikacija. Mnogi programeri koriste javne RPC-ove jer njihovi projekti nisu dovoljno veliki da bi morali koristiti privatne RPC-ove.

Osim toga, pokretanje javnog RPC-a može biti izuzetno izazovno zbog ograničenih zahtjeva servera, visokih operativnih troškova i nepostojanja jasnog poslovnog modela koji podržava javne RPC usluge. .

Naravno, javni RPC-ovi također imaju svoja ograničenja, kada je potražnja tolika da su RPC-ovi zagušeni, svi Dapp-ovi koji koriste taj RPC neće moći komunicirati sa Blockchainom. To smo vidjeli kada su projekti poput Poligona ili BSC-a ušli u fazu hiperrasta.

Drugi tip RPC-a je RPC kao usluga (RPC Private) koji daje Dapp-ovima koji ih koriste privatnom pristupu čvoru. Jedna od izvanrednih prednosti je da pomažu Dapp-ovima da rade stabilnije i kroz veću propusnost izbjegavajući situaciju. zagušenja tokom velike potražnje.

Neka istaknuta RPC kao servisna rješenja koja možda već znate su Runnode, GenesysGo, Moralis.

Naravno, da bi razvili potpuno funkcionalnu dApp, programeri također trebaju izgraditi kompletnu infrastrukturu oko njih. Ovo je složen i dugotrajan poduhvat.

Pročitajte više: Šta su decentralizovane finansije (DeFi) | Kako postati DeFi stručnjak


Kako da se povežem na RPC koristeći MetaMask?

Za povezivanje na prilagođenu mrežu koristeći kompatibilne RPC podatke, preporučujemo korištenje MetaMask novčanika. Možete se povezati na prilagođenu mrežu slijedeći ove korake:

1. Idite na MetaMask web stranicu i preuzmite MetaMask novčanik.

2. Nakon instaliranja i osiguranja vaše tajne fraze za oporavak od 12 riječi, a) kliknite na Ethereum Mainnet na vrhu ekrana MetaMask novčanika i b) odaberite Dodaj mrežu .

 

3. Vaš pretraživač će otvoriti novu karticu u koju možete kopirati i zalijepiti detalje prilagođene mreže (koristit ćemo poligonsku mrežu kao primjer):

a) Naziv mreže :Poligon mainnet
b) RPC :https://polygon-rpc.com/
c) ChainID :137
d) Simbol :MATIC
e) Block Explorer :https://explorer.matic.network

4. Nakon uspješnog povezivanja na Polygon mainnet, vaš MetaMask novčanik će prikazati i a) novu mrežu i b) izvornu imovinu:

Prikupili smo listu tačaka podataka RPC mreže za vašu referencu, ako ikada budete trebali da se povežete na jedan od ovih čvorova u budućnosti.

Lista blockchain RPC-ova

RPC podatkovne točke koje možete koristiti za povezivanje na različite mreže.

Poligon (MATIC)

Naziv mreže:Poligon mainnet
RPC:https://polygon-rpc.com/
ID lanca:137
simbol:MATIC
Block explorer:https://explorer.matic.network/

BNB

Naziv mreže:BNB pametni lanac
RPC:https://bsc-dataseed.binance.org/
ID lanca:56
simbol:BNB
Block Explorer:https://bscscan.com

Songbird

Naziv mreže:Songbird mainnet
RPC:https://songbird.towolabs.com/rpc
ID lanca:19
simbol:SGB
Block Explorer:https://songbird-explorer.flare.network/

Avalanche

Naziv mreže:Avalanche C-Chain
RPC:https://api.avax.network/ext/bc/C/rpc
ID lanca:43114
simbol:AVAX
Block Explorer:https://snowtrace.io

Fantom

Naziv mreže:Fantom Opera mainnet
RPC:https://rpc.ftm.tools/
ID lanca:250
simbol:FTM
Block Explorer:https://ftmscan.com

Harmony

Naziv mreže:Harmony mainnet
RPC:https://api.harmony.one/
ID lanca:1666600000
simbol:JEDAN
Block Explorer:https://explorer.harmony.one

Huobi

Naziv mreže:HECO mainnet
RPC:https://http-mainnet-node.huobichain.com/
ID lanca:128
simbol:HT
Block Explorer:https://hecoininfo.com/

Kucoin

Naziv mreže:KCC mainnet
RPC:https://rpc-mainnet.kcc.network
ID lanca:321
simbol:KCS
Block Explorer:https://scan.kcc.network

Cronos

Naziv mreže:Cronos mainnet
RPC:https://evm-cronos.crypto.org
ID lanca:25
simbol:CRO
Block Explorer:https://cronos.crypto.org/explorer/

OKEx Chain

Naziv mreže:OKEx Chain mainnet
RPC:https://exchainrpc.okex.org
ID lanca:66
simbol:OCT
Block Explorer:https://www.oklink.com/okexchain

xDai

Naziv mreže:xDai mainnet
RPC:https://rpc.xdaichain.com/
ID lanca:100
simbol:XDAI
Block Explorer:https://blockscout.com/xdai/mainnet/

energyweb

Naziv mreže:Energetski web lanac
RPC:https://rpc.energyweb.org/
ID lanca:246
simbol:EWT
Block Explorer:https://explorer.energyweb.org/

Arbiter

Naziv mreže:Arbiter One
RPC:https://arb1.arbitrum.io/rpc
ID lanca:42161
simbol:ETH
Block Explorer:https://arbiscan.io/

XinFin

Naziv mreže:XinFin mainnet
RPC:https://rpc.xinfin.network
ID lanca:50
simbol:XDC
Block Explorer:https://explorer.xinfin.network/

Celo

Naziv mreže:cello mainnet
RPC:https://forno.celo.org
ID lanca:42220
simbol:ČELO
Block Explorer:https://explorer.celo.org

Hvala što ste posjetili i pročitali ovaj članak! Molimo ne zaboravite ostaviti lajk, komentirati i podijeliti!

What is GEEK

Buddha Community

Python Global Variables – How to Define a Global Variable Example

In this article, you will learn the basics of global variables.

To begin with, you will learn how to declare variables in Python and what the term 'variable scope' actually means.

Then, you will learn the differences between local and global variables and understand how to define global variables and how to use the global keyword.

What Are Variables in Python and How Do You Create Them? An Introduction for Beginners

You can think of variables as storage containers.

They are storage containers for holding data, information, and values that you would like to save in the computer's memory. You can then reference or even manipulate them at some point throughout the life of the program.

A variable has a symbolic name, and you can think of that name as the label on the storage container that acts as its identifier.

The variable name will be a reference and pointer to the data stored inside it. So, there is no need to remember the details of your data and information – you only need to reference the variable name that holds that data and information.

When giving a variable a name, make sure that it is descriptive of the data it holds. Variable names need to be clear and easily understandable both for your future self and the other developers you may be working with.

Now, let's see how to actually create a variable in Python.

When declaring variables in Python, you don't need to specify their data type.

For example, in the C programming language, you have to mention explicitly the type of data the variable will hold.

So, if you wanted to store your age which is an integer, or int type, this is what you would have to do in C:

#include <stdio.h>
 
int main(void)
{
  int age = 28;
  // 'int' is the data type
  // 'age' is the name 
  // 'age' is capable of holding integer values
  // positive/negative whole numbers or 0
  // '=' is the assignment operator
  // '28' is the value
}

However, this is how you would write the above in Python:

age = 28

#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'

The variable name is always on the left-hand side, and the value you want to assign goes on the right-hand side after the assignment operator.

Keep in mind that you can change the values of variables throughout the life of a program:

my_age = 28

print(f"My age in 2022 is {my_age}.")

my_age = 29

print(f"My age in 2023 will be {my_age}.")

#output

#My age in 2022 is 28.
#My age in 2023 will be 29.

You keep the same variable name, my_age, but only change the value from 28 to 29.

What Does Variable Scope in Python Mean?

Variable scope refers to the parts and boundaries of a Python program where a variable is available, accessible, and visible.

There are four types of scope for Python variables, which are also known as the LEGB rule:

  • Local,
  • Enclosing,
  • Global,
  • Built-in.

For the rest of this article, you will focus on learning about creating variables with global scope, and you will understand the difference between the local and global variable scopes.

How to Create Variables With Local Scope in Python

Variables defined inside a function's body have local scope, which means they are accessible only within that particular function. In other words, they are 'local' to that function.

You can only access a local variable by calling the function.

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()


#output

#The best place to learn to code is with freeCodeCamp!

Look at what happens when I try to access that variable with a local scope from outside the function's body:

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#try to print local variable 'coding_website' from outside the function
print(coding_website)

#output

#NameError: name 'coding_website' is not defined

It raises a NameError because it is not 'visible' in the rest of the program. It is only 'visible' within the function where it was defined.

How to Create Variables With Global Scope in Python

When you define a variable outside a function, like at the top of the file, it has a global scope and it is known as a global variable.

A global variable is accessed from anywhere in the program.

You can use it inside a function's body, as well as access it from outside a function:

#create a global variable
coding_website = "freeCodeCamp"

def learn_to_code():
    #access the variable 'coding_website' inside the function
    print(f"The best place to learn to code is with {coding_website}!")

#call the function
learn_to_code()

#access the variable 'coding_website' from outside the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

What happens when there is a global and local variable, and they both have the same name?

#global variable
city = "Athens"

def travel_plans():
    #local variable with the same name as the global variable
    city = "London"
    print(f"I want to visit {city} next year!")

#call function - this will output the value of local variable
travel_plans()

#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")

#output

#I want to visit London next year!
#I want to visit Athens next year!

In the example above, maybe you were not expecting that specific output.

Maybe you thought that the value of city would change when I assigned it a different value inside the function.

Maybe you expected that when I referenced the global variable with the line print(f" I want to visit {city} next year!"), the output would be #I want to visit London next year! instead of #I want to visit Athens next year!.

However, when the function was called, it printed the value of the local variable.

Then, when I referenced the global variable outside the function, the value assigned to the global variable was printed.

They didn't interfere with one another.

That said, using the same variable name for global and local variables is not considered a best practice. Make sure that your variables don't have the same name, as you may get some confusing results when you run your program.

How to Use the global Keyword in Python

What if you have a global variable but want to change its value inside a function?

Look at what happens when I try to do that:

#global variable
city = "Athens"

def travel_plans():
    #First, this is like when I tried to access the global variable defined outside the function. 
    # This works fine on its own, as you saw earlier on.
    print(f"I want to visit {city} next year!")

    #However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
    #after trying to print it,
    #it will throw an error
    city = "London"
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#output

#UnboundLocalError: local variable 'city' referenced before assignment

By default Python thinks you want to use a local variable inside a function.

So, when I first try to print the value of the variable and then re-assign a value to the variable I am trying to access, Python gets confused.

The way to change the value of a global variable inside a function is by using the global keyword:

#global variable
city = "Athens"

#print value of global variable
print(f"I want to visit {city} next year!")

def travel_plans():
    global city
    #print initial value of global variable
    print(f"I want to visit {city} next year!")
    #assign a different value to global variable from within function
    city = "London"
    #print new value
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#print value of global variable
print(f"I want to visit {city} next year!")

Use the global keyword before referencing it in the function, as you will get the following error: SyntaxError: name 'city' is used prior to global declaration.

Earlier, you saw that you couldn't access variables created inside functions since they have local scope.

The global keyword changes the visibility of variables declared inside functions.

def learn_to_code():
   global coding_website
   coding_website = "freeCodeCamp"
   print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()

#access variable from within the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

Conclusion

And there you have it! You now know the basics of global variables in Python and can tell the differences between local and global variables.

I hope you found this article useful.

You'll start from the basics and learn in an interactive and beginner-friendly way. You'll also build five projects at the end to put into practice and help reinforce what you've learned.

Thanks for reading and happy coding!

Source: https://www.freecodecamp.org/news/python-global-variables-examples/

#python 

坂本  篤司

坂本 篤司

1652450700

Pythonグローバル変数–グローバル変数の例を定義する方法

この記事では、グローバル変数の基本を学びます。

まず、Pythonで変数を宣言する方法と、「変数スコープ」という用語が実際に何を意味するかを学習します。

次に、ローカル変数とグローバル変数の違いを学び、グローバル変数の定義方法とglobalキーワードの使用方法を理解します。

Pythonの変数とは何ですか?どのように作成しますか?初心者のための紹介

変数はストレージコンテナと考えることができます。

これらは、コンピュータのメモリに保存したいデータ、情報、および値を保持するためのストレージコンテナです。その後、プログラムの存続期間中のある時点でそれらを参照したり、操作したりすることもできます。

変数にはシンボリックがあり、その名前は、その識別子として機能するストレージコンテナのラベルと考えることができます。

変数名は、その中に格納されているデータへの参照とポインターになります。したがって、データと情報の詳細を覚えておく必要はありません。そのデータと情報を保持する変数名を参照するだけで済みます。

変数に名前を付けるときは、変数が保持するデータを説明していることを確認してください。変数名は、将来の自分自身と一緒に作業する可能性のある他の開発者の両方にとって、明確で簡単に理解できる必要があります。

それでは、Pythonで実際に変数を作成する方法を見てみましょう。

Pythonで変数を宣言するときは、データ型を指定する必要はありません。

たとえば、Cプログラミング言語では、変数が保持するデータの型を明示的に指定する必要があります。

したがって、整数またはint型である年齢を格納したい場合、これはCで行う必要があることです。

#include <stdio.h>
 
int main(void)
{
  int age = 28;
  // 'int' is the data type
  // 'age' is the name 
  // 'age' is capable of holding integer values
  // positive/negative whole numbers or 0
  // '=' is the assignment operator
  // '28' is the value
}

ただし、これはPythonで上記を記述する方法です。

age = 28

#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'

変数名は常に左側にあり、代入する値は代入演算子の後に右側に配置されます。

プログラムの存続期間中、変数の値を変更できることに注意してください。

my_age = 28

print(f"My age in 2022 is {my_age}.")

my_age = 29

print(f"My age in 2023 will be {my_age}.")

#output

#My age in 2022 is 28.
#My age in 2023 will be 29.

同じ変数名を保持しますが、値をからにmy_age変更するだけです。2829

Pythonの可変スコープとはどういう意味ですか?

変数スコープとは、変数が利用可能で、アクセス可能で、表示可能なPythonプログラムの部分と境界を指します。

Python変数のスコープには4つのタイプがあり、 LEGBルールとも呼ばれます。

  • 局所
  • 囲み
  • グローバル
  • ビルトイン

この記事の残りの部分では、グローバルスコープを使用した変数の作成について学習することに焦点を当て、ローカル変数スコープとグローバル変数スコープの違いを理解します。

Pythonでローカルスコープを使用して変数を作成する方法

関数の本体内で定義された変数にはローカルスコープがあります。つまり、その特定の関数内でのみアクセスできます。言い換えれば、それらはその関数に対して「ローカル」です。

ローカル変数にアクセスするには、関数を呼び出す必要があります。

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()


#output

#The best place to learn to code is with freeCodeCamp!

関数の本体の外部からローカルスコープを使用してその変数にアクセスしようとするとどうなるかを見てください。

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#try to print local variable 'coding_website' from outside the function
print(coding_website)

#output

#NameError: name 'coding_website' is not defined

NameErrorプログラムの残りの部分では「表示」されないため、aが発生します。定義された関数内でのみ「表示」されます。

Pythonでグローバルスコープを使用して変数を作成する方法

ファイルの先頭など、関数の外部で変数を定義すると、その変数はグローバルスコープを持ち、グローバル変数と呼ばれます。

グローバル変数は、プログラムのどこからでもアクセスできます。

関数の本体内で使用することも、関数の外部からアクセスすることもできます。

#create a global variable
coding_website = "freeCodeCamp"

def learn_to_code():
    #access the variable 'coding_website' inside the function
    print(f"The best place to learn to code is with {coding_website}!")

#call the function
learn_to_code()

#access the variable 'coding_website' from outside the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

グローバル変数とローカル変数があり、両方が同じ名前の場合はどうなりますか?

#global variable
city = "Athens"

def travel_plans():
    #local variable with the same name as the global variable
    city = "London"
    print(f"I want to visit {city} next year!")

#call function - this will output the value of local variable
travel_plans()

#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")

#output

#I want to visit London next year!
#I want to visit Athens next year!

上記の例では、その特定の出力を期待していなかった可能性があります。

city関数内で別の値を割り当てたときに、の値が変わると思ったかもしれません。

たぶん、私が行でグローバル変数を参照したときprint(f" I want to visit {city} next year!")、出力は#I want to visit London next year!の代わりになると予想しました#I want to visit Athens next year!

ただし、関数が呼び出されると、ローカル変数の値が出力されます。

次に、関数の外部でグローバル変数を参照すると、グローバル変数に割り当てられた値が出力されました。

彼らはお互いに干渉しませんでした。

ただし、グローバル変数とローカル変数に同じ変数名を使用することは、ベストプラクティスとは見なされません。プログラムを実行すると混乱する結果が生じる可能性があるため、変数の名前が同じでないことを確認してください。

Pythonでキーワードを使用する方法global

グローバル変数があり、関数内でその値を変更したい場合はどうなりますか?

私がそれをしようとすると何が起こるか見てください:

#global variable
city = "Athens"

def travel_plans():
    #First, this is like when I tried to access the global variable defined outside the function. 
    # This works fine on its own, as you saw earlier on.
    print(f"I want to visit {city} next year!")

    #However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
    #after trying to print it,
    #it will throw an error
    city = "London"
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#output

#UnboundLocalError: local variable 'city' referenced before assignment

デフォルトでは、Pythonは関数内でローカル変数を使用したいと考えています。

そのため、最初に変数の値を出力してから、アクセスしようとしている変数に値再割り当てしようとすると、Pythonが混乱します。

関数内のグローバル変数の値を変更する方法は、次のglobalキーワードを使用することです。

#global variable
city = "Athens"

#print value of global variable
print(f"I want to visit {city} next year!")

def travel_plans():
    global city
    #print initial value of global variable
    print(f"I want to visit {city} next year!")
    #assign a different value to global variable from within function
    city = "London"
    #print new value
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#print value of global variable
print(f"I want to visit {city} next year!")

global次のエラーが発生するため、関数でキーワードを参照する前にキーワードを使用してくださいSyntaxError: name 'city' is used prior to global declaration

以前、関数内で作成された変数はローカルスコープを持っているため、それらにアクセスできないことを確認しました。

globalキーワードは、関数内で宣言された変数の可視性を変更します。

def learn_to_code():
   global coding_website
   coding_website = "freeCodeCamp"
   print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()

#access variable from within the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

結論

そして、あなたはそれを持っています!これで、Pythonのグローバル変数の基本を理解し、ローカル変数とグローバル変数の違いを理解できます。

この記事がお役に立てば幸いです。

基本から始めて、インタラクティブで初心者に優しい方法で学びます。また、最後に5つのプロジェクトを構築して実践し、学んだことを強化するのに役立てます。

読んでくれてありがとう、そして幸せなコーディング!

ソース:https ://www.freecodecamp.org/news/python-global-variables-examples/

#python 

Variables Globales De Python: Cómo Definir Un Ejemplo De Variable Glob

En este artículo, aprenderá los conceptos básicos de las variables globales.

Para empezar, aprenderá cómo declarar variables en Python y qué significa realmente el término 'ámbito de variable'.

Luego, aprenderá las diferencias entre variables locales y globales y comprenderá cómo definir variables globales y cómo usar la globalpalabra clave.

¿Qué son las variables en Python y cómo se crean? Una introducción para principiantes

Puede pensar en las variables como contenedores de almacenamiento .

Son contenedores de almacenamiento para almacenar datos, información y valores que le gustaría guardar en la memoria de la computadora. Luego puede hacer referencia a ellos o incluso manipularlos en algún momento a lo largo de la vida del programa.

Una variable tiene un nombre simbólico y puede pensar en ese nombre como la etiqueta en el contenedor de almacenamiento que actúa como su identificador.

El nombre de la variable será una referencia y un puntero a los datos almacenados en su interior. Por lo tanto, no es necesario recordar los detalles de sus datos e información; solo necesita hacer referencia al nombre de la variable que contiene esos datos e información.

Al dar un nombre a una variable, asegúrese de que sea descriptivo de los datos que contiene. Los nombres de las variables deben ser claros y fácilmente comprensibles tanto para usted en el futuro como para los otros desarrolladores con los que puede estar trabajando.

Ahora, veamos cómo crear una variable en Python.

Al declarar variables en Python, no necesita especificar su tipo de datos.

Por ejemplo, en el lenguaje de programación C, debe mencionar explícitamente el tipo de datos que contendrá la variable.

Entonces, si quisiera almacenar su edad, que es un número entero, o inttipo, esto es lo que tendría que hacer en C:

#include <stdio.h>
 
int main(void)
{
  int age = 28;
  // 'int' is the data type
  // 'age' is the name 
  // 'age' is capable of holding integer values
  // positive/negative whole numbers or 0
  // '=' is the assignment operator
  // '28' is the value
}

Sin embargo, así es como escribirías lo anterior en Python:

age = 28

#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'

El nombre de la variable siempre está en el lado izquierdo y el valor que desea asignar va en el lado derecho después del operador de asignación.

Tenga en cuenta que puede cambiar los valores de las variables a lo largo de la vida de un programa:

my_age = 28

print(f"My age in 2022 is {my_age}.")

my_age = 29

print(f"My age in 2023 will be {my_age}.")

#output

#My age in 2022 is 28.
#My age in 2023 will be 29.

Mantienes el mismo nombre de variable my_age, pero solo cambias el valor de 28a 29.

¿Qué significa el alcance variable en Python?

El alcance de la variable se refiere a las partes y los límites de un programa de Python donde una variable está disponible, accesible y visible.

Hay cuatro tipos de alcance para las variables de Python, que también se conocen como la regla LEGB :

  • local ,
  • Encerrando ,
  • globales ,
  • Incorporado .

En el resto de este artículo, se centrará en aprender a crear variables con alcance global y comprenderá la diferencia entre los alcances de variables locales y globales.

Cómo crear variables con alcance local en Python

Las variables definidas dentro del cuerpo de una función tienen alcance local , lo que significa que solo se puede acceder a ellas dentro de esa función en particular. En otras palabras, son 'locales' para esa función.

Solo puede acceder a una variable local llamando a la función.

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()


#output

#The best place to learn to code is with freeCodeCamp!

Mire lo que sucede cuando trato de acceder a esa variable con un alcance local desde fuera del cuerpo de la función:

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#try to print local variable 'coding_website' from outside the function
print(coding_website)

#output

#NameError: name 'coding_website' is not defined

Plantea un NameErrorporque no es 'visible' en el resto del programa. Solo es 'visible' dentro de la función donde se definió.

Cómo crear variables con alcance global en Python

Cuando define una variable fuera de una función, como en la parte superior del archivo, tiene un alcance global y se conoce como variable global.

Se accede a una variable global desde cualquier parte del programa.

Puede usarlo dentro del cuerpo de una función, así como acceder desde fuera de una función:

#create a global variable
coding_website = "freeCodeCamp"

def learn_to_code():
    #access the variable 'coding_website' inside the function
    print(f"The best place to learn to code is with {coding_website}!")

#call the function
learn_to_code()

#access the variable 'coding_website' from outside the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

¿Qué sucede cuando hay una variable global y local, y ambas tienen el mismo nombre?

#global variable
city = "Athens"

def travel_plans():
    #local variable with the same name as the global variable
    city = "London"
    print(f"I want to visit {city} next year!")

#call function - this will output the value of local variable
travel_plans()

#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")

#output

#I want to visit London next year!
#I want to visit Athens next year!

En el ejemplo anterior, tal vez no esperaba ese resultado específico.

Tal vez pensaste que el valor de citycambiaría cuando le asignara un valor diferente dentro de la función.

Tal vez esperabas que cuando hice referencia a la variable global con la línea print(f" I want to visit {city} next year!"), la salida sería en #I want to visit London next year!lugar de #I want to visit Athens next year!.

Sin embargo, cuando se llamó a la función, imprimió el valor de la variable local.

Luego, cuando hice referencia a la variable global fuera de la función, se imprimió el valor asignado a la variable global.

No interfirieron entre sí.

Dicho esto, usar el mismo nombre de variable para variables globales y locales no se considera una buena práctica. Asegúrese de que sus variables no tengan el mismo nombre, ya que puede obtener algunos resultados confusos cuando ejecute su programa.

Cómo usar la globalpalabra clave en Python

¿Qué sucede si tiene una variable global pero desea cambiar su valor dentro de una función?

Mira lo que sucede cuando trato de hacer eso:

#global variable
city = "Athens"

def travel_plans():
    #First, this is like when I tried to access the global variable defined outside the function. 
    # This works fine on its own, as you saw earlier on.
    print(f"I want to visit {city} next year!")

    #However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
    #after trying to print it,
    #it will throw an error
    city = "London"
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#output

#UnboundLocalError: local variable 'city' referenced before assignment

Por defecto, Python piensa que quieres usar una variable local dentro de una función.

Entonces, cuando intento imprimir el valor de la variable por primera vez y luego reasignar un valor a la variable a la que intento acceder, Python se confunde.

La forma de cambiar el valor de una variable global dentro de una función es usando la globalpalabra clave:

#global variable
city = "Athens"

#print value of global variable
print(f"I want to visit {city} next year!")

def travel_plans():
    global city
    #print initial value of global variable
    print(f"I want to visit {city} next year!")
    #assign a different value to global variable from within function
    city = "London"
    #print new value
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#print value of global variable
print(f"I want to visit {city} next year!")

Utilice la globalpalabra clave antes de hacer referencia a ella en la función, ya que obtendrá el siguiente error: SyntaxError: name 'city' is used prior to global declaration.

Anteriormente, vio que no podía acceder a las variables creadas dentro de las funciones ya que tienen un alcance local.

La globalpalabra clave cambia la visibilidad de las variables declaradas dentro de las funciones.

def learn_to_code():
   global coding_website
   coding_website = "freeCodeCamp"
   print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()

#access variable from within the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

Conclusión

¡Y ahí lo tienes! Ahora conoce los conceptos básicos de las variables globales en Python y puede distinguir las diferencias entre las variables locales y globales.

Espero que hayas encontrado útil este artículo.

Comenzará desde lo básico y aprenderá de una manera interactiva y amigable para principiantes. También construirá cinco proyectos al final para poner en práctica y ayudar a reforzar lo que ha aprendido.

¡Gracias por leer y feliz codificación!

Fuente: https://www.freecodecamp.org/news/python-global-variables-examples/

#python 

Cesar  Hamill

Cesar Hamill

1650279480

Što je RPC (Remote Procedure Call) u Blockchainu

U ovom članku ćemo naučiti šta je RPC, aplikacije i važnost RPC-a u Blockchainu.

1. Šta je Remote Procedure Call (RPC)?

Remote Procedure Call je softverski komunikacioni protokol koji jedan program može koristiti da zatraži uslugu od programa koji se nalazi na drugom računaru na mreži bez potrebe da razumije detalje mreže. RPC se koristi za pozivanje drugih procesa na udaljenim sistemima kao što je lokalni sistem. Poziv procedure je ponekad poznat i kao  poziv funkcije ili  poziv potprograma .

RPC koristi model klijent-server. Program koji traži je klijent, a program koji pruža uslugu je server. Poput lokalnog poziva procedure, RPC je sinhrona operacija koja zahtijeva da se program koji zahtjeva suspenduje dok se ne vrate rezultati udaljene procedure. Međutim, upotreba lakih procesa ili niti koje dijele isti adresni prostor omogućava da se više RPC-ova izvodi istovremeno.

The interface definition language (IDL) -- the specification language used to describe a software component's application programming interface (API) -- is commonly used in Remote Procedure Call software. In this case, IDL provides a bridge between the machines at either end of the link that may be using different operating systems (OSes) and computer languages.

What does RPC do?

Kada se programski izrazi koji koriste RPC okvir kompajliraju u izvršni program, stub je uključen u prevedeni kod koji djeluje kao predstavnik koda udaljene procedure. Kada se program pokrene i izda poziv procedure, stub prima zahtjev i prosljeđuje ga klijentskom runtime programu na lokalnom računalu. Prvi put kada se klijentski stub pozove, on kontaktira server imena da odredi transportnu adresu na kojoj se server nalazi.

Klijentski runtime program ima znanje o tome kako se obratiti aplikaciji udaljenog računara i servera i šalje poruku preko mreže koja zahtijeva udaljenu proceduru. Slično, server uključuje runtime program i stub koji sučelje sa samom udaljenom procedurom. Protokoli odgovora i zahtjeva vraćaju se na isti način.

Kako funkcioniše RPC?

Kada se pozove udaljeni poziv procedure, okruženje poziva se suspenduje, parametri procedure se prenose preko mreže u okruženje u kojem se procedura treba izvršiti, a procedura se zatim izvršava u tom okruženju.

Kada se procedura završi, rezultati se prenose nazad u okruženje koje poziva, gde se izvršavanje nastavlja kao da se vraća iz redovnog poziva procedure.

Tokom RPC-a odvijaju se sljedeći koraci:

  1. Klijent poziva klijenta stub. Poziv je poziv lokalne procedure s parametrima gurnutim u stog na normalan način.
  2. Klijentski stub pakuje parametre procedure u poruku i upućuje sistemski poziv da pošalje poruku. Pakovanje parametara procedure naziva se razvrstavanje .
  3. Lokalni OS klijenta šalje poruku sa klijentske mašine na mašinu udaljenog servera.
  4. OS servera prosljeđuje dolazne pakete na stub servera.
  5. Serverski stub raspakuje parametre -- koji se naziva demarshalling -- iz poruke.
  6. Kada je serverska procedura gotova, vraća se na stub servera, koji maršalizira vraćene vrijednosti u poruku. Serverski stub zatim predaje poruku transportnom sloju.
  7. Transportni sloj šalje rezultujuću poruku nazad klijentskom transportnom sloju, koji šalje poruku nazad klijentskom stubu.
  8. Klijentski stub demaršira povratne parametre, a izvršenje se vraća pozivaocu.

Vrste RPC-a

Postoji nekoliko RPC modela i implementacija distribuiranog računarstva. Popularan model i implementacija je Distributed Computing Environment (DCE) Open Software Foundation (OSF). Institut inženjera elektrotehnike i elektronike (IEEE) definira RPC u svojoj ISO specifikaciji poziva za udaljene procedure, ISO/IEC CD 11578 N6561, ISO/IEC, novembar 1991.

Primjeri RPC konfiguracija uključuju sljedeće:

  • Normalna metoda rada u kojoj klijent upućuje poziv i ne nastavlja sve dok server ne vrati odgovor.
  • Klijent upućuje poziv i nastavlja sa vlastitom obradom. Server ne odgovara.
  • Mogućnost slanja nekoliko neblokirajućih poziva klijenata u jednoj grupi.
  • RPC klijenti imaju mogućnost emitiranja, tj. mogu slati poruke na mnoge servere i zatim primati sve rezultirajuće odgovore.
  • Klijent obavlja neblokirajući klijent/server poziv; server signalizira da je poziv završen pozivanjem procedure povezane s klijentom.

RPC obuhvata transportni sloj i sloj aplikacije u modelu mrežne komunikacije Open Systems Interconnection (OSI). RPC olakšava razvoj aplikacije koja uključuje više programa distribuiranih u mreži. Alternativne metode za komunikaciju klijent-poslužitelj uključuju red poruka i IBM-ovu naprednu komunikaciju između programa (APPC).

Prednosti i mane RPC-a

Iako se može pohvaliti širokim spektrom prednosti, sigurno postoji dio zamki kojih bi oni koji koriste RPC trebali biti svjesni.

Evo nekih od prednosti koje RPC pruža programerima i menadžerima aplikacija:

  • Pomaže klijentima da komuniciraju sa serverima putem tradicionalne upotrebe poziva procedura na jezicima visokog nivoa.
  • Može se koristiti u distribuiranom okruženju, kao iu lokalnom okruženju.
  • Podržava modele orijentirane na proces i niti.
  • Skriva interni mehanizam za prosljeđivanje poruka od korisnika.
  • Zahtijeva samo minimalan trud za ponovno pisanje i razvoj koda.
  • Pruža apstrakciju, tj. priroda mrežne komunikacije koja prenosi poruku je skrivena od korisnika.
  • Izostavlja mnoge slojeve protokola radi poboljšanja performansi.

S druge strane, neki od nedostataka RPC-a uključuju sljedeće:

  • Klijent i server koriste različita okruženja izvršavanja za svoje odgovarajuće rutine, a upotreba resursa (npr. datoteka) je takođe složenija. Shodno tome, RPC sistemi nisu uvijek prikladni za prijenos velikih količina podataka.
  • RPC je vrlo ranjiv na neuspjeh jer uključuje komunikacioni sistem, drugu mašinu i drugi proces.
  • Ne postoji jedinstveni standard za RPC; može se implementirati na razne načine.
  • RPC je samo zasnovan na interakciji i kao takav ne nudi nikakvu fleksibilnost kada je u pitanju hardverska arhitektura.

2. Poziv udaljene procedure u Blockchainu 

Ako ste ikada poslali tokene na pogrešnu mrežu, trebat će vam RPC originalne mreže da biste ih oporavili.

Ne možete koristiti RPC-ove u Exodus-u, ali sa novčanikom kao što je MetaMask, možete se povezati na prilagođene mreže da biste vidjeli svoje tokene u MetaMasku koristeći RPC-ove.

Akronim RPC je skraćenica za Remote Procedure Call. RPC-ovi omogućavaju komunikaciju sa serverima na daljinu i pružaju mogućnost izvršavanja programa na odvojenoj lokaciji. U smislu blockchaina, RPC dozvoljava pristup serverskom čvoru na navedenoj mreži i omogućava vam komunikaciju i interakciju s tim blockchainom.

Zašto su nam potrebni RPC?

Da bismo stupili u interakciju s blockchainom, potreban nam je način da pristupimo mrežnim serverima putem prikladne i generičke opcije za obavljanje operacija poput pregleda stanja, kreiranja transakcije ili interakcije sa pametnim ugovorom. RPC-ovi su ono što nam daje mogućnost da uspostavimo tu vezu sa serverima.

Kada programer kreira decentraliziranu aplikaciju (dApp) s RPC mogućnostima, korisnik će tada moći izvršavati zahtjeve i komunicirati s blockchainom. Na primjer, ako ste ikada koristili decentraliziranu razmjenu (DEX) tako što ste povezali novčanik, kao što je MetaMask, vaša veza i komunikacija se usmjeravaju kroz RPC za komunikaciju s blockchain serverom.

Primjena RPC-a u Crypto

Evo 3 popularne aplikacije RPC-a u Crypto-u:

  • Upiti u blockchain podatke bez pristupa privatnom čvoru

Kada prave aplikacije na Blockchain-u, programeri također trebaju pristup mnogim vrstama informacija o Blockchain-u, kao što su; broj bloka, vezu s čvorom, transakcijska sredstva i podatke o historiji blockchaina.

Oni mogu uputiti zahtjeve svom željenom blockchainu u JSON-u i dobiti odgovor s informacijama koje su im potrebne. Da bi to učinili, programeri imaju nekoliko izbora, ali najlakše i najbrže rješenje za trenutni pristup blockchain-u je korištenje RPC usluga.

  • Pojednostavite proces izgradnje Blockchain aplikacija

RPC sloj je također koristan pri izgradnji aplikacija na Blockchain-u jer uvelike pojednostavljuje rad programera. Na primjer;

Ako želite da korisnici mogu vidjeti kripto stanja iz novčanika koji nije vaš novi web-mjesto projekta, nećete morati kreirati novi novčanik, samo trebate napraviti API koji može zahtijevati komunikaciju s novčanikom vašeg novog projekta. korisnicima da pronađu ono što korisnici drže i prikažu ih na sučelju vaše web stranice.

Pokrenite pozive za pristup velikim količinama informacija iz Blockchaina

Programeri mogu pokrenuti naredbe Calls za obavljanje zadataka kao što su šifriranje novčanika, kreiranje JSON objekata u podatke čitljive ljude, pronalaženje trenutne veličine bloka, generiranje adresa s više potpisa, .... Ovo su vitalni dijelovi informacija koje graditelji trebaju da kreiraju svoje vlastite blockchain platforme i usluge.

Važnost RPC-a u Blockchainu

Svim dApps-ima (decentraliziranim aplikacijama) potreban je način za komunikaciju s blockchainima. Bez sredstava komunikacije, dApps ne bi mogli pristupiti informacijama i obavljati transakcije na blockchainu na kojem rade.

RPC podržava usluge kao što su MetaMask i druge Web 3.0 aplikacije koje se povezuju na informacije na različitim blockchainima. Sa RPC-ovima, oni mogu automatski stupiti u interakciju s blockchain podacima i obavljati zadatke poput transakcija novčanika kriptovaluta. Također omogućava svakome da se poveže na blok lanca čvora kako bi kreirao decentralizirane aplikacije (dapps).

Primjer kako RPC funkcionira: Kada korisnik pristupi DEX-u ili koristi MetaMask za obavljanje transakcije, njegov zahtjev prolazi kroz RPC da ih poveže sa čvorovima koji drže podatke iz lanca blokova.

Naročito u kontekstu L1 Blockchaina koji niču kao gljive nakon kiše, potražnja za korištenjem RPC-a za povezivanje s Blockchainima veća je nego ikad. Odavde je moguće da je RPC suštinski alat koji programeri blockchaina trebaju koristiti za izgradnju decentraliziranih aplikacija i projekata.

Ograničenja RPC čvora

Postoje 2 glavna tipa RPC-a na tržištu danas;

  • Javni RPC (Javni RPC).
  • RPC kao usluga (RPC Private).

Za obične korisnike, javni RPC (Public RPC) kao javno dobro je obično obezbeđen od strane osnovnog Blockchain-a koji korisnici mogu koristiti, dobar primer ovoga; Kada žele pristupiti Poligonu ili drugom EVM Blockchainu, korisnici su upućeni da samo prilagođena RPC mreža može koristiti Metamask za interakciju na tom Blockchainu.

Javni RPC omogućava svakome da se poveže na čvorove da zadrži informacije potrebne za kreiranje decentralizovanih aplikacija. Mnogi programeri koriste javne RPC-ove jer njihovi projekti nisu dovoljno veliki da bi morali koristiti privatne RPC-ove.

Osim toga, pokretanje javnog RPC-a može biti izuzetno izazovno zbog ograničenih zahtjeva servera, visokih operativnih troškova i nepostojanja jasnog poslovnog modela koji podržava javne RPC usluge. .

Naravno, javni RPC-ovi također imaju svoja ograničenja, kada je potražnja tolika da su RPC-ovi zagušeni, svi Dapp-ovi koji koriste taj RPC neće moći komunicirati sa Blockchainom. To smo vidjeli kada su projekti poput Poligona ili BSC-a ušli u fazu hiperrasta.

Drugi tip RPC-a je RPC kao usluga (RPC Private) koji daje Dapp-ovima koji ih koriste privatnom pristupu čvoru. Jedna od izvanrednih prednosti je da pomažu Dapp-ovima da rade stabilnije i kroz veću propusnost izbjegavajući situaciju. zagušenja tokom velike potražnje.

Neka istaknuta RPC kao servisna rješenja koja možda već znate su Runnode, GenesysGo, Moralis.

Naravno, da bi razvili potpuno funkcionalnu dApp, programeri također trebaju izgraditi kompletnu infrastrukturu oko njih. Ovo je složen i dugotrajan poduhvat.

Pročitajte više: Šta su decentralizovane finansije (DeFi) | Kako postati DeFi stručnjak


Kako da se povežem na RPC koristeći MetaMask?

Za povezivanje na prilagođenu mrežu koristeći kompatibilne RPC podatke, preporučujemo korištenje MetaMask novčanika. Možete se povezati na prilagođenu mrežu slijedeći ove korake:

1. Idite na MetaMask web stranicu i preuzmite MetaMask novčanik.

2. Nakon instaliranja i osiguranja vaše tajne fraze za oporavak od 12 riječi, a) kliknite na Ethereum Mainnet na vrhu ekrana MetaMask novčanika i b) odaberite Dodaj mrežu .

 

3. Vaš pretraživač će otvoriti novu karticu u koju možete kopirati i zalijepiti detalje prilagođene mreže (koristit ćemo poligonsku mrežu kao primjer):

a) Naziv mreže :Poligon mainnet
b) RPC :https://polygon-rpc.com/
c) ChainID :137
d) Simbol :MATIC
e) Block Explorer :https://explorer.matic.network

4. Nakon uspješnog povezivanja na Polygon mainnet, vaš MetaMask novčanik će prikazati i a) novu mrežu i b) izvornu imovinu:

Prikupili smo listu tačaka podataka RPC mreže za vašu referencu, ako ikada budete trebali da se povežete na jedan od ovih čvorova u budućnosti.

Lista blockchain RPC-ova

RPC podatkovne točke koje možete koristiti za povezivanje na različite mreže.

Poligon (MATIC)

Naziv mreže:Poligon mainnet
RPC:https://polygon-rpc.com/
ID lanca:137
simbol:MATIC
Block explorer:https://explorer.matic.network/

BNB

Naziv mreže:BNB pametni lanac
RPC:https://bsc-dataseed.binance.org/
ID lanca:56
simbol:BNB
Block Explorer:https://bscscan.com

Songbird

Naziv mreže:Songbird mainnet
RPC:https://songbird.towolabs.com/rpc
ID lanca:19
simbol:SGB
Block Explorer:https://songbird-explorer.flare.network/

Avalanche

Naziv mreže:Avalanche C-Chain
RPC:https://api.avax.network/ext/bc/C/rpc
ID lanca:43114
simbol:AVAX
Block Explorer:https://snowtrace.io

Fantom

Naziv mreže:Fantom Opera mainnet
RPC:https://rpc.ftm.tools/
ID lanca:250
simbol:FTM
Block Explorer:https://ftmscan.com

Harmony

Naziv mreže:Harmony mainnet
RPC:https://api.harmony.one/
ID lanca:1666600000
simbol:JEDAN
Block Explorer:https://explorer.harmony.one

Huobi

Naziv mreže:HECO mainnet
RPC:https://http-mainnet-node.huobichain.com/
ID lanca:128
simbol:HT
Block Explorer:https://hecoininfo.com/

Kucoin

Naziv mreže:KCC mainnet
RPC:https://rpc-mainnet.kcc.network
ID lanca:321
simbol:KCS
Block Explorer:https://scan.kcc.network

Cronos

Naziv mreže:Cronos mainnet
RPC:https://evm-cronos.crypto.org
ID lanca:25
simbol:CRO
Block Explorer:https://cronos.crypto.org/explorer/

OKEx Chain

Naziv mreže:OKEx Chain mainnet
RPC:https://exchainrpc.okex.org
ID lanca:66
simbol:OCT
Block Explorer:https://www.oklink.com/okexchain

xDai

Naziv mreže:xDai mainnet
RPC:https://rpc.xdaichain.com/
ID lanca:100
simbol:XDAI
Block Explorer:https://blockscout.com/xdai/mainnet/

energyweb

Naziv mreže:Energetski web lanac
RPC:https://rpc.energyweb.org/
ID lanca:246
simbol:EWT
Block Explorer:https://explorer.energyweb.org/

Arbiter

Naziv mreže:Arbiter One
RPC:https://arb1.arbitrum.io/rpc
ID lanca:42161
simbol:ETH
Block Explorer:https://arbiscan.io/

XinFin

Naziv mreže:XinFin mainnet
RPC:https://rpc.xinfin.network
ID lanca:50
simbol:XDC
Block Explorer:https://explorer.xinfin.network/

Celo

Naziv mreže:cello mainnet
RPC:https://forno.celo.org
ID lanca:42220
simbol:ČELO
Block Explorer:https://explorer.celo.org

Hvala što ste posjetili i pročitali ovaj članak! Molimo ne zaboravite ostaviti lajk, komentirati i podijeliti!

Rowan Rosh

1609137635

Best Remote Software Development Companies

The current pandemic situation of COVID-19 has changed the viewpoint of workspace and remote teams. Hiring remote development companies is the need of the hour! Moreover, with the evolving systems such as the adoption of 5G technology, access to global talent, usage of collaboration tools, etc. working on a remote basis is turning out to be more viable than ever before!
So, before you go ahead and hire remote software development companies, here are the few things you must consider.

Things to Consider Before Hiring Remote Software Development Companies:

Evaluate Your Development Needs
Evaluate and understand what your software demands, the technical aptitude, and experience required by the developer, the time limit of the project, etc. Measure these attributes and then hire a remote developer that fits your requirements.

Screening Process
From designing a test for the developers and verifying prior experience – the screening process is crucial. But the major screening process requires you to understand if the remote developer is trustworthy and dependable as company’s critical data is in the hands of someone who is miles away.

Proactive Communication & Meetings
Managers must encourage proactive communication among their team members. Creating an approachable atmosphere, having a defined communication channel and regular meetings can strengthen connectivity and knowledge sharing.

Availability & Flexibility
Managing teams between time zones are yet another thing that you must consider while hiring remote development providers. Countries have different time zones; hence, it is important that you as well as your remote team are all available at given hours and have flexible work timings.

Hunger for Knowledge & Self-Motivated
Remote teams need to be self-motivated and ready to upgrade their knowledge base. A remote developer’s value to a business is based entirely on his or her output. Thus, hire developers – who are passionate about learning new things and upgrading knowledge.

Listed Below are the Seven Top-Rated Software Development Companies:

1. CONTUS DigitalTeams

CONTUS DigitalTeams is one of the best remote software development providers in the world. Hire a team of dedicated remote software developers on project basis or for a long-term period. With CONTUS DigitalTeams you may also choose to extend your team with their remote engineers as per your business scope. CONTUS DigitalTeams assists all types of businesses and industries regardless of size. Their remote digital development services offer a range of full-stack development services. From front-end designs, innovative UI/UX to interactive backend development and so much more.

2. TOPTAL

Toptal is a marketplace for top software developers, engineers, programmers and coders. It is a platform focused on providing freelance developers and software engineers to mostly corporate clients. Some of the major companies as well as start-up firms work with Toptal freelancers to supplement their development teams. Toptal makes the process of hiring software developers and software engineers easy. Remote developers on Toptal are well-equipped to build a range of experience across web platforms, mobile apps, SaaP as well as SaaS solutions.

3. REINTECH

Reintech assists companies to hire developers and build dedicated software development teams from Eastern Europe. Reintech comprehends that outsourcing is not the best model for companies willing to scale up their existing development team. Hence, Reintech offers a platform that connects companies with qualified, competent, and experienced remote software developers. At Reintech companies get direct access to manually vetted remote software developers and programmers. These full-stack developers are deployed by a team of highly experienced professionals.

4. WE WORK REMOTELY

We Work Remotely (WWR) is a channel that hosts the largest remote work community in the world. WWR is a remote job board where firms pay to list remote job opportunities. The site offers a great resource for employers wanting to hire remote teams and remote development companies that are looking for people with specialized skills. Although WWR is not just limited to offering programmers or developers, they have a wide-range of databases for the same. The skilled developers on WWR create bespoke platforms and end-to-end software development solutions.

5. ITCRAFTSHIP

ITCraftship is an agency that provides recruitment processes from remote-based outsourcing to staff augmentation services. ITCraftship supports software businesses and companies with software development teams find the right programmers and developers to build competent software development teams. Moreover, at ITCraftship they also study the company’s development needs and help find the right candidates from their talent pool.

6. RELEVANT SOFTWARE

Relevant Software is an offshore software development services vendor. Relevant Software hosts senior level programmers and developers that have the expertise to build world-class software. Relevant Software are remote development providers that offer full-cycle product development from ideation to execution for organizations across the globe. Relevant Software offers a wide variety of services such as – mobile app development, UI/UX design, CRM systems, business software, maintenance, analytics, etc.

7. INTUZ

Intuz is a software development company and technological service provider. They offer remote development services and allow companies to hire developers or extend their development team. Intuz follows outstanding coding practices, reviews internal codes, and works on the highest standards followed by the industry. The appointed remote developers work on a real-time basis that can be monitored in a secured environment. Intuz offers a number of services including mobile app development, cloud computing and IoT development.

Conclusion:

It is best for tech companies and businesses with software to offer remote working options so that they can capitalize on savings in infrastructure and reduced overhead costs. This is why there is no doubt that remote software development is slowly going to become the new normal compared to the traditional work-from-office model. So, if you need help in extending your remote software development team or need to hire dedicated developers – speak with an expert!

#hire developers #remote developers #hire remote team #hire remote developers #remote teams #remote development providers