1. Finanse osobiste Różne rodzaje portfeli Ethereum
Ethereum For Dummies

Michael Solomon

Wszystko przechowywane w bloku Ethereum ma adres, dzięki czemu właściciel może znaleźć i uzyskać dostęp do swoich danych w blokach. Dane przechowywane w blokach Ethereum mogą być krypto-zasobami, takimi jak eter lub inne tokeny, inteligentne kontrakty lub dowolne inne dane. Adres danych identyfikuje właściciela tych danych. A jeśli chodzi o krypto-aktywa, tylko właściciel może uzyskać dostęp do tych danych. Cóż, każdy może uzyskać dostęp do zaszyfrowanych danych, ale tylko właściciel może je odszyfrować i wykorzystać zasób.

Osoba kontrolująca klucz prywatny używany do szyfrowania danych w łańcuchu bloków kontroluje dane. Jedynym sposobem na zgłoszenie roszczenia do dowolnego krypto-zasobu jest udowodnienie, że kontrolujesz klucz prywatny powiązany z adresem krypto-zasobu.

Adresy w Ethereum to ostatnie (skrajnie prawe) 20 bajtów skrótu klucza publicznego właściciela. Aby obliczyć adres, wystarczy obliczyć skrót Keccak-256 klucza publicznego, a następnie skopiować maksymalnie 20 bajtów po prawej stronie. Wynikowa wartość to adres klucza publicznego tego konta. Kod do obliczenia adresu z klucza publicznego wygląda następująco:

addr = right (keccak256 (pubkey), 20)

Jedynym sposobem ochrony zasobów kryptowalutowych jest ochrona kluczy prywatnych. Potrzebujesz mechanizmu do przechowywania klucza prywatnego, abyś mógł się do niego dostać, ale nikt inny nie może. Podstawową funkcją portfela jest miejsce do przechowywania jednego lub więcej kluczy prywatnych używanych do uzyskiwania dostępu do danych blockchain.

Idealny portfel Ethereum sprawia, że ​​dostęp do kluczy jest naprawdę łatwy, a dostęp do nich nikt inny. Wszystkie portfele równoważą te dwa cele i zawierają kompromis między użytecznością (łatwość dostępu do kluczy) a bezpieczeństwem (bezpieczeństwo kluczy przed atakiem).

Rodzaje portfeli Ethereum

Klucze prywatne można przechowywać na kilka sposobów, od bardzo bezpiecznego do bardzo łatwo dostępnego. Zastanów się, jak ważne są twoje klucze prywatne i wybierz typ portfela, który Ci odpowiada. Główne kategorie portfeli są następujące:

  • Portfele oprogramowania przechowują klucze prywatne w plikach danych, gdzie użytkownicy mogą łatwo uzyskać do nich dostęp. Portfel sprzętowy przechowuje klucze prywatne na fizycznym układzie scalonym przechowywanym w urządzeniu, takim jak Ledger Nano S. Portfele papierowe to kawałki papieru z nadrukowanymi kluczami.

Oprogramowanie portfele Ethereum

Portfele oprogramowania to programy, które przechowują klucze prywatne i ułatwiają użytkownikom pobieranie i używanie tych kluczy. Po skonfigurowaniu portfela możesz uzyskać dostęp do kluczy, podając identyfikator użytkownika i hasło lub zaszyfrowany plik, który tylko Ty masz. Portfele z oprogramowaniem można dalej podzielić na dwie główne kategorie: gorące i zimne.

Gorący portfel Ethereum

Gorący portfel to taki, który przechowuje twoje klucze online. Możesz łatwo uzyskać dostęp do swoich kluczy i zasobów Ethereum z dowolnego miejsca na świecie. Wszystko czego potrzebujesz to połączenie z Internetem i poświadczenia dostępu. Chociaż gorące portfele są wygodne, wygoda wiąże się z dodatkowymi kosztami. Jeśli ktoś ukradnie twoje dane dostępu, może ukraść twoje zasoby Ethereum.

Ponadto musisz zaufać organizacji portfela, która przechowuje twoje klucze. Jeśli Twoja organizacja portfela Ethereum zostanie zhakowana lub przestanie działać, możesz stracić wszystko. Jeśli ta organizacja jest celem dochodzenia, Twoje dane mogą zostać ujawnione lub twoje aktywa Ethereum mogą zostać zamrożone. Rezygnujesz z kontroli, aby uzyskać wygodę.

Zimny ​​portfel Ethereum

Zimny ​​portfel to taki, w którym przechowujesz klucze offline. Klucze musisz podać tylko wtedy, gdy chcesz uzyskać dostęp do zasobów Ethereum. Możesz przechowywać klucze offline na wiele sposobów, ale to podejście wymaga kilku dodatkowych kroków, gdy chcesz kupić lub sprzedać krypto-aktywa lub wejść w interakcję z inteligentnymi kontraktami.

Chociaż zimne portfele są nieco mniej wygodne, mogą być bardziej bezpieczne. Masz kontrolę nad swoimi kluczami za pomocą tego rodzaju portfela Ethereum i możesz podjąć wszelkie środki ostrożności, które uważasz za konieczne w celu ochrony swoich kluczy. Korzystanie z zimnego portfela stanowi alternatywę i zmniejsza ryzyko włamania się do portfela online przez osobę atakującą i pobrania wielu kluczy.

Z zimnym portfelem jesteś odpowiedzialny za ochronę swoich kluczy. Musisz upewnić się, że każde miejsce, w którym przechowujesz klucze, jest tak bezpieczne, jak to możliwe. Jeśli masz dużo wartości przechowywanych w łańcuchu bloków Ethereum, upewnij się, że twoje miejsca przechowywania kluczy są tak bezpieczne, jak to możliwe i że nie są dostępne dla nikogo oprócz ciebie.

Gorący portfel kontra zimny portfel dla Ethereum

Jak decydujesz, czy chcesz użyć gorącego portfela, czy zimnego portfela dla Ethereum? Jeśli chcesz zwiększyć wygodę i zaufać bezpieczeństwu sprzedawcy portfela online, gorący portfel może być najlepszym wyborem. Ponadto, jeśli nie planujesz przechowywać niczego o dużej wartości za pomocą konkretnego konta Ethereum, gorący portfel jest najłatwiejszy i może mieć sens dla tego konta.

Z drugiej strony, jeśli nie ufasz dostawcom internetowym i czujesz się swobodnie, biorąc odpowiedzialność za zabezpieczenie magazynu kluczy, zimny portfel da ci większą kontrolę. Lub jeśli planujesz przechowywać aktywa o znacznej wartości, powinieneś wziąć odpowiedzialność za ochronę swoich rzeczy. Będziesz musiał poświęcić trochę wygody, ale utrata całej kryptowaluty sama w sobie jest niewygodna.

Rodzaje oprogramowania klienckiego dla Ethererum

Po podjęciu decyzji o przechowywaniu kluczy w gorącym lub zimnym portfelu następnym wyborem jest rodzaj oprogramowania klienckiego. Jeśli wybierzesz portfel oprogramowania Ethereum do przechowywania kluczy, musisz gdzieś uruchomić to oprogramowanie. Masz kilka możliwości:

  • Portfele internetowe: oprogramowanie portfela, do którego dostęp uzyskuje się za pomocą przeglądarki internetowej. Portfele na komputery stacjonarne: oprogramowanie działające na komputerze stacjonarnym lub laptopie. W większości przypadków portfele na komputery stacjonarne działają na komputerach z systemem Microsoft Windows, macOS lub Linux. Portfele mobilne: portfele Ethereum na urządzenia mobilne. Najpopularniejsze oprogramowanie portfela działa w systemach operacyjnych iOS i Android na smartfony i tablety.

Nie musisz wybierać tylko jednego rodzaju portfela Ethereum. W zależności od potrzeb możesz używać wielu portfeli. Klucze do krypto-aktywów o wysokiej wartości należy chronić bardziej ostrożnie, natomiast klucze do krypto-aktywów o niskiej wartości można przechowywać online w celu łatwiejszego dostępu.

Sprzętowe portfele Ethereum

Opcja portfela Ethereum, która jest bezpieczniejsza niż większość portfeli oprogramowania, to portfel sprzętowy. Portfel sprzętowy przechowuje klucze prywatne na fizycznym układzie scalonym. Możesz podłączyć urządzenie zawierające układ do wielu różnych typów komputerów i urządzeń mobilnych, zapewniając w ten sposób wiele sposobów dostępu do kluczy. Większość portfeli sprzętowych zawiera także fizyczne przyciski do zarządzania dostępem do kluczy.

Zaletą fizycznego portfela jest zwiększone bezpieczeństwo. Podłączasz urządzenie do komputera tylko wtedy, gdy chcesz uzyskać dostęp do zasobów blockchain. Gdy urządzenie nie jest podłączone, twoje klucze są bezpieczne w urządzeniu fizycznym. Atakujący musiałby fizycznie ukraść twoje urządzenie portfela i znać twoje dane dostępu, aby dostać się do twoich kluczy.

Wadą fizycznego portfela jest utrata wygody i redundancji. Musisz podłączyć fizyczny portfel do komputera lub urządzenia za każdym razem, gdy chcesz uzyskać dostęp do zasobów blockchain. Jeśli często uzyskujesz dostęp do zasobów, proces ten może stać się denerwujący.

Ponadto w przypadku utraty urządzenia fizycznego odzyskanie dostępu do zasobów blockchain może nigdy nie być możliwe. Z tego powodu wielu użytkowników portfela fizycznego wykonuje co najmniej jedną kopię zapasową swoich kluczy i zachowuje szczególną ostrożność, aby przechowywać kopie w bezpiecznym miejscu.

Papierowe portfele Ethereum

Ostatni rodzaj portfela Ethereum może być najbezpieczniejszy. Jak sama nazwa wskazuje, portfel papierowy to dosłownie kawałek papieru. Po utworzeniu konta Ethereum i wygenerowaniu kluczy jednym ze sposobów przechowywania tych kluczy jest po prostu wydrukowanie ich na papierze. Większość opcji generowania kluczy daje możliwość drukowania kluczy. Jeśli wybierzesz tę opcję, otrzymasz wydrukowaną kopię klucza prywatnego i publicznego wraz z kodem QR każdego klucza.

papierowy portfel Ethereum

Ilekroć chcesz uzyskać dostęp do zasobów blockchain, takich jak kupno lub sprzedaż Ether, możesz wpisać swój klucz prywatny lub zeskanować kod QR. Oczywiście oprogramowanie, którego używasz do uzyskania dostępu do Ethereum, musi obsługiwać skanowanie QR.

Portfele papierowe są bezpieczne tylko wtedy, gdy trzymasz swój papier w tajemnicy. Ostrożnie strzeż tego kawałka papieru. Każdy, kto może chwycić papier, a nawet zrobić mu zdjęcie, może ukraść wszystkie zasoby Ethereum. Podobnie jak w przypadku portfeli sprzętowych Ethereum, warto wykonać kopię zapasową i przechowywać ją w bezpiecznym miejscu.

Niezależnie od tego, jaki rodzaj portfela Ethereum wybierzesz, upewnij się, że podjąłeś środki ostrożności, aby chronić swoje aktywa.

  1. Finanse osobiste Inteligentne kontrakty Ethereum: Wskazówki dotyczące solidnego przetwarzania danych
Ethereum For Dummies

Michael Solomon

Solidność jest najpopularniejszym językiem do pisania inteligentnych umów Ethereum. Solidność została zaproponowana przez Gavina Wooda w sierpniu 2014 roku. Chociaż nie jest to jedyny język, w którym można pisać inteligentne kontrakty, jest to najpopularniejszy język do pisania inteligentnych kontraktów działających w Ethereum. Cieszy się solidnym wsparciem społeczności Ethereum i został opracowany przez zespół Solidity projektu Ethereum.

Solidność została zaprojektowana tak, aby była podobna do JavaScript i była pod wpływem kilku innych popularnych języków programowania, w tym C ++ i Python. Celem Solidity jest zapewnienie języka znanego twórcom aplikacji internetowych, ale ukierunkowanego na inteligentne tworzenie kontraktów. Solidity nie jest przeznaczony nie jako język ogólnego przeznaczenia, ale do wspierania specyficznych operacji blockchain za pomocą kodu działającego w EVM.

Zanim Twój kod będzie mógł działać w EVM, musisz go skompilować. Dlatego jednym z komponentów zainstalowanych podczas tworzenia środowiska programistycznego był kompilator Solidity. Najpierw piszesz swój kod źródłowy Solidity w edytorze. Następnie kompilujesz go do kodu bajtowego, czyli instrukcji uruchamianych w EVM. Po wdrożeniu inteligentnego kodu bajtowego kontrakt działa na wszystkich węzłach Ethereum.

Ponieważ inteligentne kontrakty działają na wszystkich węzłach, Solidity musi egzekwować determinizm, to znaczy wyniki muszą być takie same dla wszystkich węzłów obsługujących kod inteligentnej umowy z tymi samymi danymi wejściowymi. Jeśli spojrzysz na dokumentację Solidity, nie znajdziesz funkcji random (). To pominięcie ma w szczególności wspierać determinizm Solidarności. Twój kod jest uruchamiany najpierw przez węzeł, który wydobywa nowy blok, ale następnie wszystkie węzły weryfikują blok i uruchamiają kod, aby upewnić się, że nie uzyskają innego wyniku.

Pod wieloma względami Solidność jest podobna do innych języków programowania. Największe różnice dotyczą sposobu uruchamiania programów i sposobu, w jaki Solidity radzi sobie z danymi. Pamiętaj, że Solidity zajmuje się danymi tylko w EVM lub blockchain.

Solidność nie wchodzi w interakcje ze światem zewnętrznym, ale jest to możliwe. Solidność wspiera koncepcję wyroczni, która jest zaufanym źródłem informacji ze świata zewnętrznego.

Wywołanie wyroczni jest łatwe. Jednym z problemów jest zaufanie do wyroczni. Innym problemem jest radzenie sobie z danymi Oracle, które mogą zwracać różne dane za każdym razem, gdy są wywoływane. Przed użyciem jakichkolwiek wyroczni należy upewnić się, że źródło danych jest godne zaufania i spójne. Wyrocznie często zwracają dane i dowody autentyczności.

Pojęcie zaufania w odniesieniu do wyroczni jest tylko przedłużeniem zaufania blockchain. Pamiętaj, że technologia blockchain zapewnia zaufaną księgę danych w środowisku pozbawionych zaufania węzłów sieciowych. Ponieważ zaufanie jest podstawową właściwością blockchain, nic dziwnego, że zaufanie do wyroczni jest ważnym problemem.

Solidność dotyczy w szczególności przechowywania danych. Generalnie definiujesz dwa typy zmiennych w Solidity: zmienne stanu i zmienne lokalne. Zmienne stanu definiuje się w sekcji umowy, a te zmienne są dostępne w dowolnym miejscu inteligentnej umowy. Zmienne te przechowują stan inteligentnego kontraktu, zapisując wartości w bloku w łańcuchu bloków. Definiujesz zmienne lokalne w funkcjach. Zmienne lokalne nie zapisują swoich wartości między wywołaniami funkcji. Te wartości nie są przechowywane w łańcuchu bloków i znikają po zakończeniu funkcji.

Solidność określa trzy miejsca do przechowywania danych:

  • Stos: Gdzie Solidity przechowuje lokalne proste wartości zmiennych zdefiniowane w funkcjach. Pamięć: Obszar pamięci na każdym EVM, którego używa Solidity do przechowywania wartości tymczasowych. Zapisane tutaj wartości są kasowane między wywołaniami funkcji. Pamięć: gdzie znajdują się zmienne stanu zdefiniowane w umowie inteligentnej. Te zmienne stanu znajdują się w sekcji danych inteligentnych kontraktów w łańcuchu bloków.

Zmienna lokalizacja przechowywania jest jednym z bardziej mylących aspektów Solidności. Język Solidity nie ma słowa kluczowego stosu, ale ma słowa kluczowe dotyczące pamięci i pamięci. Solidity używa własnych wartości domyślnych, w zależności od tego, gdzie definiujesz zmienne i jak ich używasz, ale możesz zastąpić niektóre z tych wartości domyślnych, a także użyć słów kluczowych, aby zmodyfikować sposób, w jaki Solidity traktuje zmienne.

Oto kilka zasad, które pomagają zachować prostotę podczas nauki o przechowywaniu danych w Solidity:

  • Zmienne stanu są domyślnie przechowywane (wartości są przechowywane w łańcuchu bloków). Zmienne lokalne w funkcjach są domyślnie w pamięci (wartości są tymczasowo przechowywane w pamięci). Struktury są domyślnie przechowywane (wartości są przechowywane w blockchain).

Solidność może obsługiwać różne typy danych i zapewnia różne typy zmiennych do obsługi każdego typu. Kiedy definiujesz zmienne, musisz określić typ danych zmiennej. Typ danych mówi Solidity, ile miejsca do przydzielenia dla wartości, którą będziesz przechowywać w zmiennej i jak traktować dane. W poniższej tabeli wymieniono typy danych obsługiwane przez Solidity.

Ponieważ Twoje inteligentne umowy stają się coraz bardziej złożone, prawdopodobnie będziesz musiał reprezentować bardziej złożone typy danych. Na przykład możesz chcieć zdefiniować fizyczny typ adresu, który zawiera kilka informacji, w tym adres, miasto, województwo i kod pocztowy.

Konieczne może być również przechowywanie tabel lub list danych. Solidność pozwala tworzyć własne struktury danych przy użyciu typu danych złożonych. Możesz także zdefiniować tablice przechowujące grupy podobnych elementów danych. Tablice solidności mogą być grupami prostych typów danych lub grup struktur.

Oto inteligentny kontrakt, który pokazuje niektóre proste typy danych Solidity. W tym przykładzie używasz tylko zmiennych stanu, co oznacza, że ​​piszesz do łańcucha bloków. Zdefiniowanie wszystkich zmiennych jako zmiennych stanu nie jest dobrym pomysłem, chyba że chcesz przechowywać dane na zawsze. Dane przechowywane w blockchain wymagają kosztownych operacji i nie należy ich używać, chyba że trzeba je przechowywać w sposób ciągły. Na razie będziesz używać zmiennych stanu.

Otwórz kod VS dla projektu myProject:

Aby otworzyć VS Code w projekcie myProject, otwórz wiersz polecenia Windows lub PowerShell (mój ulubiony) i użyj polecenia cd, aby przejść do katalogu projektu (myProject). W tym miejscu wprowadź następujące polecenie i naciśnij klawisz Enter:

kod .

Następnie wpisz następujący kod lub pobierz pliki projektu Ethereum z Dummies.

pragma solidność 0.4.24;
/ *
* @title Typy danych Solidity
* @ autor Michael Solomon
* @notice Po prostu sprytna umowa, aby zademonstrować proste typy danych dostępne w Solidity
*
* /
kontrakt DataTypes {
uint x = 9;
int i = -68;
uint8 j = 17;
bool isEthereumCool = true;
właściciel adresu = msg.sender; // Adres Ethereum nadawcy wiadomości
bytes32 bMsg = "hello";
string sMsg = "hello";
funkcja publicznego widoku getStateVariables () zwraca (uint, int, uint8, bool, adres, bytes32, łańcuch) {
return (x, i, j, isEthereumCool, właściciel, bMsg, sMsg);
}
} <

Przed wdrożeniem i przetestowaniem nowej inteligentnej umowy musisz ją dodać do skryptu JavaScript migracji. W VS Code otwórz plik 2_contracts_migrations.js w katalogu Migracje. Następnie dodaj dwa wiersze z komentarzami, aby Twój plik wyglądał tak:

var HelloWorld = artifacts.require („HelloWorld”);
var DataTypes = artifacts.require („DataTypes”); // Dodaj ten wiersz
module.exports = funkcja (wdrażający) {
deployer.deploy (HelloWorld);
deployer.deploy (DataTypes); // Dodaj ten wiersz
};

Nie zapomnij zapisać pliku po dodaniu nowego tekstu!

Oto kroki, których możesz użyć do wdrożenia i przetestowania nowej inteligentnej umowy:

  1. Upewnij się, że masz uruchomiony Ganache. W polu VS Code kliknij lub naciśnij kartę Terminal, wpisz następujące polecenie, a następnie naciśnij klawisz Enter: wdrażanie trufli - reset Wpisz konsolę truflową i naciśnij klawisz Enter. W wierszu polecenia konsoli Trufla wpisz następujące polecenie i naciśnij klawisz Enter: DataTypes.deployed (). Następnie (function (instance) {return instance.getStateVariables ()});

Poniższy obraz pokazuje wartości zwracane przez nowy inteligentny kontrakt. Trufla wyświetla wartości zwracane w ciekawy sposób. Liczby są zwracane jako obiekty BigNumber. Możesz wywoływać funkcje w bibliotece BigNumber w celu ich konwersji, ale na razie po prostu odczytaj wartości bezpośrednio.

W przypadku wartości liczbowych zwracanych pierwsza wartość s: jest znakiem liczby, a trzecia wartość c: jest wartością bez znaku, którą zwróciła funkcja. Należy również pamiętać, że wartości adresu i bajtów32 są w formacie szesnastkowym.

Inteligentny kontrakt Ethereum
  1. Finanse osobiste Podstawowa składnia inteligentnego kontraktu Ethereum
Ethereum For Dummies

Michael Solomon

Jeśli planujesz opracować Ethereum, prawdopodobnie będziesz używać Solidity, jednego z najpopularniejszych języków programowania dla inteligentnych umów. Rzućmy okiem na podstawową składnię Solidity. Kiedy piszesz kod źródłowy Solidity, zapisujesz ten kod w pliku z rozszerzeniem .sol.

Kod umowy Ethereum smat

Program Solidity składa się z kilku głównych sekcji, takich jak:

  • Pragma: Mówi Solidity, które wersje kompilatora są prawidłowe do skompilowania tego pliku. Komentarze: programiści powinni używać komentarzy do dokumentowania kodu. Import: import definiuje zewnętrzny plik zawierający kod, którego potrzebuje Twoja inteligentna umowa. Umowa (umowy): w tej sekcji znajduje się treść kodu inteligentnej umowy.

Deklaracja prawidłowej wersji kompilatora w inteligentnych kontraktach Ethereum

Dyrektywa pragma powinna być pierwszym wierszem kodu w pliku Solidity. Ponieważ język Solidity wciąż dojrzewa, nowe wersje kompilatorów często zawierają zmiany, które nie skompilowałyby starszych programów. Dyrektywa pragma pomaga uniknąć awarii kompilatora spowodowanych użyciem nowszego kompilatora.

Oto składnia dyrektywy pragma:

pragma Solidność << numer wersji >>;

Oto przykładowa dyrektywa pragma:

pragma Solidność ^ 0.4.24;

Wszystkie instrukcje w Solidity kończą się średnikiem.

Numer wersji zaczyna się od 0, po którym następuje główny numer kompilacji i mniejszy numer kompilacji. Na przykład numer wersji 0.4.24 odnosi się do kompilacji głównej 4 i kompilacji mniejszej 24. Symbol karetki (^) przed numerem wersji informuje Solidity, że może korzystać z najnowszej kompilacji w głównym zakresie wersji. W poprzednim przykładzie Solidity może używać kompilatora z dowolnej kompilacji z zakresu kompilacji w wersji 4. Jest to sposób na poinformowanie czytelników, że twój program został napisany dla wersji 0.4.24, ale nadal będzie się kompilował dla kolejnych wersji wersji 4.

Chociaż stosowanie znaku daszka w dyrektywie pragma zapewnia elastyczność, lepiej jest porzucić daszek i powiedzieć Solidity dokładnie, jakiej wersji kompilatora oczekujesz.

Komentowanie twojego kodu Solidity

Dodanie komentarzy do kodu to dodatkowy krok, który doda profesjonalny wygląd i kod Twojemu kodowi Solidity. Dobrze skomentowany plik kodu źródłowego jest łatwiejszy do odczytania i zrozumienia oraz pomaga innym programistom szybko zrozumieć, co powinien zrobić Twój kod. Nawet proste komentarze mogą skrócić czas potrzebny do naprawienia błędów lub dodania nowej funkcjonalności. Komentarze mogą również zawierać dane wejściowe dla narzędzi do generowania dokumentacji dla inteligentnych umów.

Możesz używać jedno- lub wielowierszowych komentarzy regularnych. Komentarze jednowierszowe zaczynają się od dwóch ukośników. Komentarze wielowierszowe zaczynają się od znaków / *, a kończą na znakach * /. Oto przykład komentarzy Solidity:

// Oto komentarz dotyczący Solidności w jednym wierszu
/ * Mam więcej do powiedzenia w tym komentarzu, więc powiem
użyj komentarza wielowierszowego. Kompilator zignoruje
wszystko po pierwszych komentarzach, aż
widzi końcowe komentarze. * /

Trzeci rodzaj komentarza Solidity nazywa się dyrektywą Ethereum Natural Specification (NatSpec). Za pomocą NatSpec można podać informacje o kodzie dla generatorów dokumentacji, których można użyć do tworzenia sformatowanej dokumentacji opisującej inteligentne kontrakty. Dyrektywy NatSpec zaczynają się od trzech ukośników i zawierają specjalne znaczniki z danymi do dokumentacji. Oto przykład użycia dyrektyw NatSpec:

/// @title Greeter Inteligentny kontrakt
/// @author Joe Programmer
/// @notice Ten kod przyjmuje imię osoby i wita
/// @param name Nazwa dzwoniącego
/// @ powrotne powitanie Powitanie z nazwą osoby dzwoniącej

Sprawdź dokumentację NatSpec, aby uzyskać dodatkowe informacje.

Importowanie zewnętrznego kodu do inteligentnej umowy Ethereum

Sekcja importu jest opcjonalna, ale może być wydajna, jeśli jest poprawnie używana w inteligentnej umowie Ethereum. Jeśli Twoja inteligentna umowa musi odwoływać się do kodu w innych plikach, musisz najpierw zaimportować te inne pliki. Importowanie plików sprawia, że ​​jakbyś skopiował drugi kod do bieżącego pliku. Korzystanie z importu pomaga uniknąć kopiowania kodu z jednego miejsca do drugiego. Jeśli potrzebujesz kodu dostępu, po prostu zaimportuj plik Solidity, który go zawiera.

Składnia do importowania innych plików jest prosta. Używasz słowa kluczowego import, a następnie podajesz nazwę pliku, który chcesz zaimportować. Na przykład, aby zaimportować plik myToken.sol, użyj następującej składni:

Importuj „myToken.sol”;

Definiowanie inteligentnych umów Ethereum

W ostatniej głównej sekcji Solidity definiujesz zawartość swojej inteligentnej umowy. Zaczyna się od słowa kluczowego kontrakt i zawiera cały kod funkcjonalny w inteligentnej umowie. Możesz mieć wiele sekcji kontraktów w Solidity. Oznacza to, że pojedynczy plik .sol może definiować wiele umów. Oto przykładowa sekcja umowy:

umowa HelloWorld {
string private helloMessage = "Hello world";
funkcja getHelloMessage () widok publiczny zwraca (ciąg) {
return helloMessage;
}
}

Wewnątrz sekcji umowy jest miejsce, w którym definiujesz wszystkie swoje zmienne, struktury, zdarzenia i funkcje. W sekcji dotyczącej kodu znajduje się o wiele więcej, ale na razie wiesz, jak skonfigurować inteligentną umowę Solidity.

Po opanowaniu podstaw Solidności możesz kontynuować opracowywanie bardziej złożonego kodu, a niebo jest granicą.

  1. Personal Finance10 darmowych zasobów Ethereum
Ethereum For Dummies

Michael Solomon

Dostępnych jest wiele bezpłatnych zasobów, które pomogą Ci opracować zaawansowane aplikacje Ethereum. Istnieją różne narzędzia dla Ethereum w czterech kategoriach: klient blockchain, test blockchain, framework testujący i IDE. Nie musisz bardzo szukać, aby znaleźć wiele bezpłatnych zasobów Ethereum w prawie każdej kategorii.

Tutaj dowiesz się o dziesięciu dodatkowych bezpłatnych narzędziach, które pomogą Ci stworzyć własne dApps blockchain Ethereum. Niektóre z dostępnych tu zasobów stanowią alternatywę dla bardziej popularnych narzędzi, a inne uzupełniają narzędzia, których prawdopodobnie już używasz. Każdy z wymienionych tutaj zasobów ma unikalne funkcje i powinien znajdować się na liście interesujących pomysłów badawczych. Wszystkie są bezpłatne i wszystkie są wartościowymi dodatkami do zestawu narzędzi programistycznych Ethereum.

Poznaj alternatywne ramy programistyczne Ethereum

Chociaż Trufla jest najczęściej stosowanym frameworkiem, nie jest jedynym. W zależności od potrzeb i preferencji powinieneś przyjrzeć się kilku alternatywom. Na koniec wybierz platformę programistyczną, która najlepiej odpowiada Twojemu doświadczeniu i sprawia, że ​​tworzenie aplikacji dApps dla Ethereum jest jak najbardziej wolne od frustracji.

Zarządzaj swoim rozwojem Ethereum dzięki Populus

Struktura Populus zapewnia wiele takich samych funkcji jak Trufla. Ponieważ jednak Truffle koncentruje się na środowisku JavaScript, musisz napisać dużo kodu JavaScript, aby zautomatyzować zadania, przetestować i utrzymywać dApps przy użyciu Truffle. To dobrze, jeśli masz duże doświadczenie z JavaScriptem i czujesz się komfortowo w środowisku. Ale jeśli nie znasz JavaScript lub nie chcesz poświęcać czasu na jego naukę, możesz przyjrzeć się ramom opartym na czymś innym.

Populus to platforma programistyczna Ethereum oparta na języku Python. Jeśli masz doświadczenie w Pythonie lub po prostu lubisz pracę z Pythonem, warto przyjrzeć się Populusowi. Ta strona internetowa zawiera przewodnik szybkiego uruchomienia, dokumentację oraz instrukcje dotyczące instalowania i używania Populus. Jeśli lubisz Python, wypróbuj Populus, aby zobaczyć, jak wypada w porównaniu z Truflami.

Populus wymaga, aby Python był już zainstalowany. Ponieważ koniec okresu użytkowania (EOL) języka Python 2.7 jest zaplanowany na listopad 2020 r., Należy zainstalować wersję 3 języka Python. Należy znaleźć najnowszą wersję języka Python dla swojego systemu operacyjnego.

Przeglądaj kontenery blockchain Ethereum z Cliquebait

Cliquebait to kolejna platforma programistyczna Ethereum stanowiąca alternatywę dla Trufli. Zamiast natywnie uruchamiać środowisko blockchain w systemie operacyjnym komputera, Cliquebait używa kontenerów Docker, które są podobne do lekkich maszyn wirtualnych.

Docker umożliwia uruchamianie wielu kontenerów, z których wszystkie działają jako osobne maszyny wirtualne (VM), przy znacznie mniejszym nakładzie pracy niż uruchamianie wielu standardowych maszyn wirtualnych. Każda uruchomiona standardowa maszyna wirtualna uruchamia pełną kopię systemu operacyjnego wraz z wirtualnymi kopiami sprzętu, który musi być uruchomiony przez system operacyjny maszyny wirtualnej. Kontener, taki jak kontener Docker, obsługuje tylko komponenty systemu operacyjnego i sprzęt wirtualny wymagany przez programy. Rezultatem jest wirtualizacja o niższych wymaganiach dotyczących zasobów.

Cliquebait zapewnia obraz Docker, który zapewnia jednowęzłowy łańcuch blokowy Ethereum, którego można używać do opracowywania i testowania inteligentnych umów. Obsługuje także uruchamianie wielu kontenerów Docker w celu symulacji wielobębnowego łańcucha bloków, wszystkie działające na twoim komputerze.

Przed zainstalowaniem i uruchomieniem Cliquebait należy zainstalować Docker. Po zainstalowaniu Dockera przejdź do Github, aby uzyskać instrukcje dotyczące korzystania z Cliquebait.

Wybierz bezpłatne zintegrowane środowisko programistyczne dla Ethereum

IDE, które wybierzesz do pisania kodu, będzie najbardziej widocznym narzędziem w zestawie narzędzi programistycznych dApp. Spędzisz więcej czasu, używając (lub walcząc) swojego IDE, więc znalezienie odpowiedniego ma kluczowe znaczenie dla produktywności. Najlepsze IDE jest w oku patrzącego. Powinieneś wypróbować kilka IDE i wybrać ten, który najbardziej ci odpowiada.

Opracuj kod Solidity z Atomem

Atom nie jest ściśle IDE opartym na blockchainie. To potężne uniwersalne IDE z wtyczkami Solidity. Po dodaniu wtyczki Etheratom otrzymujesz wyróżnianie składni, uzupełnianie kodu oraz możliwość wywoływania kompilatora Solidity za jednym naciśnięciem klawisza.

Poniżej główny interfejs Atom. Wygląda i przypomina bardzo VS Code, z własnym charakterem. Po zainstalowaniu Atom zapoznaj się z tymi instrukcjami dotyczącymi instalowania wtyczki Etheratom.

Atom IDE

Przejdź do trybu online z Remix

Alternatywą do zainstalowania IDE na własnym komputerze jest użycie IDE opartego na przeglądarce. Remiks to popularne środowisko IDE, do którego można uzyskać dostęp z dowolnej przeglądarki internetowej. Umożliwia pisanie kodu w Solidity, a następnie wdrożenie w blockchain. Dzięki remiksowi możesz łatwo wybrać konkretną wersję kompilatora Solidity, a także wiele funkcji i opcji, które będą pomocne podczas opracowywania aplikacji dApps w Solidity.

Możesz dodać kod z komputera lokalnego lub napisać go bezpośrednio z edytora remiksów.

Zremiksuj IDE

Uprość wszystko dzięki EthFiddle

Kolejnym opartym na sieci IDE Solidity jest EthFiddle. EthFiddle to świetny wybór dla prostego internetowego IDE do pisania i kompilacji inteligentnych umów Solidity. W przeciwieństwie do Remiksu EthFiddle nie zapewnia sposobu na wdrożenie kodu.

EthFiddle IDE

Poznaj klientów Ethereum i interfejsy API

Po napisaniu inteligentnego kodu umowy musisz wdrożyć go na kliencie Ethereum, a następnie uzyskać dostęp do łańcucha bloków w celu przetestowania i wywołania kodu po jego wyprodukowaniu. Podobnie jak frameworki i środowiska IDE, dostępnych jest wiele wysokiej jakości bezpłatnych zasobów.

Zamień swojego klienta Ethereum na Parity

Parzystość to klient Ethereum, który obsługuje węzeł w sieci blockchain Ethereum. Chociaż geth jest bardziej popularny, parzystość jest dobrą alternatywą, która ma kilka zalet w stosunku do geth, w tym:

  • Szybciej: Synchronizuje pełny łańcuch bloków Ethereum w ciągu zaledwie kilku godzin i jest zbudowany w celu zmniejszenia obciążenia procesora i sieci. Niższe wykorzystanie miejsca na dysku: Przycina bloki Ethereum, aby zużywać mniej lokalnego miejsca na dysku. Internetowy interfejs GUI: Zapewnia łatwy dostęp do funkcji poprzez przyjazny dla użytkownika interfejs przeglądarki internetowej.

Przejdź do, aby rozpocząć pracę z parzystością. Jeśli chcesz korzystać z interfejsu kontroli parzystości, przejdź do Github, aby znaleźć najnowszą wersję. Poniższy obraz przedstawia nowo zainstalowany interfejs użytkownika parzystości. Zauważ, że przy pierwszym uruchomieniu interfejsu parzystości uruchamia się Parzystość i rozpoczyna proces synchronizacji z aktywną siecią Ethereum.

Interfejs parzystości

Interakcja z Ethereum za pomocą web3.js

Zdecydowanie najczęstszym sposobem interakcji z inteligentnymi umowami Ethereum jest zbiór bibliotek napisanych w JavaScript o nazwie web3.js. Możesz pisać kod w JavaScript lub dowolnym języku obsługującym wywołania JavaScript. Stamtąd web3.js ułatwia interakcję z danymi i funkcjami Ethereum.

Przejdź do Github, aby uzyskać najnowszą wersję pliku web3.js, a następnie pobierz najnowszą dokumentację pliku web3.js.

Jeśli szukasz dobrego samouczka web3.js, zapoznaj się ze wstępem do samouczka Dapp.

Skoncentruj się na portfelach Ethereum i bezpieczeństwie

Podczas opracowywania aplikacji Ethereum dApps bezpieczeństwo zawsze stanowi problem. Charakter technologii blockchain sprawia, że ​​celowe skupienie się na bezpieczeństwie jest wymaganym celem projektowym. Budowanie bezpieczeństwa w dApps zależy od posiadania odpowiednich elementów składowych i solidnej metody utrzymania bezpieczeństwa po wdrożeniu. Dwa bezpłatne zasoby, które pomagają pisać i utrzymywać bezpieczne dApps, to portfel Mist i biblioteka bezpieczeństwa OpenZeppelin.

Chroń swoje krypto-aktywa Ethereum we mgle

Mist to zarówno portfel Ethereum, jak i przeglądarka Ethereum. Mist to oficjalny portfel Ethereum, opracowany przez Fundację Ethereum. Zapewnia również dostęp do dApps, podobnie jak popularne przeglądarki internetowe zapewniają dostęp do stron internetowych w Internecie.

Mist nie tylko przegląda aplikacje blockchain; zapewnia zestaw narzędzi do interakcji z siecią Ethereum. Dzięki Mist możesz generować inteligentne kontrakty, łączyć kryptowalutę i udostępniać informacje uczestnikom, którzy sobie nie ufają. Mist próbuje sprawić, by dostęp do blockchaina Ethereum był jak najłatwiejszy.

Aby rozpocząć korzystanie z Mist, pobierz najnowszą wersję Mist dla swojego systemu operacyjnego. Po zainstalowaniu Mist możesz uruchomić przeglądarkę, aby utworzyć konto lub wejść w interakcję z blockchainem Ethereum za pomocą różnych narzędzi.

Zabezpiecz swoje aplikacje Ethereum za pomocą OpenZeppelin

Jedną z najtrudniejszych części tworzenia inteligentnych kontraktów w środowisku Ethereum jest zapewnienie im bezpieczeństwa od samego początku. Chociaż rozważanie bezpieczeństwa od początku fazy projektowania może być łatwe, pisanie bezpiecznego inteligentnego kodu umowy jest trudniejsze. Biblioteka OpenZeppelin to zbiór kodu Solidity, który pomaga wdrożyć bezpieczny kod w inteligentnych kontraktach.

Możesz zaimportować OpenZeppelin do swoich inteligentnych umów, a następnie skorzystać z wielu implementacji standardów Ethereum, takich jak tokeny ERC-20, zamiast konieczności ich samodzielnego wdrażania. OpenZeppelin powstrzymuje Cię przed ponownym odkrywaniem koła bezpieczeństwa w kodzie inteligentnego kontraktu Solidity.

Dowiedz się więcej o tworzeniu aplikacji Ethereum dApps

Jeśli chcesz dowiedzieć się więcej o rozwoju Ethereum i dobrze się przy tym bawić, sprawdź CryptoZombies. CryptoZombies to krok po kroku samouczek Solidity, w którym rozwijasz grę opartą na blockchain z udziałem tworzonej przez ciebie armii zombie. W miarę zdobywania doświadczenia twoje zombie awansują i zdobywają nowe umiejętności.

  1. Finanse osobiste Podstawy eteru: wprowadzenie do inteligentnych umów i solidności
Ethereum For Dummies

Michael Solomon

Ethereum wykorzystuje inteligentne umowy do ograniczania danych do określonych zasad podczas dokonywania wymiany. Aby pisać inteligentne umowy, musisz być biegły w języku programowania. Jednym z najbardziej popularnych języków dla inteligentnych kontraktów, aw szczególności Ethereum, jest Solidność. Spójrz na krótkie wprowadzenie do tych tematów.

Podstawy inteligentnych kontraktów Ethereum

Podczas wymiany przedmiotów o wartości, ogólne zasady regulują przebieg transakcji. W wielu przypadkach zasady są proste. Na przykład dajesz Joe 1,89 USD, a Joe daje ci drinka. Każda ze stron może zobaczyć i zweryfikować wkład drugiej strony w transakcję. Jeśli spróbujesz dać Joe Monopoly pieniądze, nie dostaniesz swojego napoju bezalkoholowego.

Chociaż transakcja wydaje się prosta, jest w niej coś więcej niż na pierwszy rzut oka. W większości przypadków, jeśli napój bezalkoholowy kosztuje 1,89 USD, będziesz musiał licytować o niego więcej. Musisz także płacić podatki. Jest więc inny uczestnik transakcji: rząd. Zamiast trzymać wszystkie pieniądze, Joe musi wysłać część pieniędzy do rządu w celu uzyskania podatków.

Przenoszenie nawet prostych transakcji, takich jak przykład napojów bezalkoholowych, do świata cyfrowego wymaga starannej refleksji. Nie możesz po prostu wysyłać pieniędzy do ludzi i ufać, że wykonają swoją część. Potrzebujesz sposobu egzekwowania zasad i zgodności, aby upewnić się, że wszystkie strony są traktowane uczciwie.

Inteligentne umowy pomagają egzekwować zasady, gdy wymieniasz coś wartościowego w Ethereum. Najprostszym sposobem opisania inteligentnych kontraktów jest to, że są to programy, które wykonują się, gdy wystąpią określone transakcje.

Na przykład, jeśli utworzysz inteligentną umowę zakupu napojów bezalkoholowych, ten kod oprogramowania będzie uruchamiany za każdym razem, gdy ktoś kupi napój bezalkoholowy. Kod inteligentnej umowy jest przechowywany w blockchain, więc wszystkie węzły mają jego kopię. Ponadto nie ma znaczenia, gdzie działa oprogramowanie: gwarantujemy, że wszystkie węzły będą działać tak samo i uzyskać takie same wyniki jak każdy inny węzeł.

Inteligentne kontrakty Ethereum są Turing zakończone, co oznacza, że ​​mogą obliczyć wszystko, co można obliczyć z wystarczającą ilością zasobów. Kompletność Turinga jest ważna, ponieważ inteligentne kontrakty Ethereum nie są ograniczone rodzajami działań, które mogą przeprowadzić. Mogą przeprowadzać dowolne złożone algorytmy, które możesz zaprojektować.

Inteligentny kontrakt na napoje bezalkoholowe rozpoczyna się od kupującego. Oto, w jaki sposób może nastąpić wymiana:

  • Kupujący tworzy transakcję, która wysyła pieniądze do sprzedawcy w zamian za napój bezalkoholowy. Kupujący przesyła adres sprzedawcy jako dane wejściowe na adres inteligentnej umowy. Inteligentna umowa jest realizowana w celu przeprowadzenia transakcji. Sprawdza, czy masz wystarczająco dużo pieniędzy na koncie, aby zapłacić za napój bezalkoholowy. Inteligentna umowa weryfikuje, czy sprzedawca ma w magazynie napój, którego potrzebujesz. Inteligentna umowa odejmuje środki od kupującego, wysyła je do sprzedawcy i mówi sprzedawcy, aby wysłał napój bezalkoholowy do kupującego. Na tym samym etapie inteligentna umowa wysyła wymagany podatek na konto organu podatkowego, a pozostałą kwotę na konto sprzedawcy.

Proces może wydawać się żmudny, ale jest prosty i zapewnia, że ​​każda transakcja przebiega w ten sam sposób. Ten przykład jest zbyt prosty do prawdziwej wymiany, a niektóre ważne szczegóły zostały pominięte. Na początek zakładasz, że sprzedawca prześle kupującemu napój bezalkoholowy. Prawdziwe wymiany wymagają dodatkowej warstwy ochrony dla obu stron. Inteligentne umowy cały czas używają kont depozytowych do przechowywania pieniędzy kupującego, dopóki sprzedawca nie dostarczy towarów lub usług.

Inteligentne kontrakty zapewniają zarządzanie i przewidywalność Ethereum. Bez nich Ethereum byłoby po prostu fajną techniką przechowywania rozproszonego. Ale dzięki nim Ethereum jest stabilną zdecentralizowaną platformą, która obsługuje interakcje i wymianę między niezaufanymi użytkownikami, w tym niezwykle złożone transakcje. Łatwo jest zobaczyć kroki niezbędne do zakupu napoju bezalkoholowego.

Inne transakcje, takie jak transakcje na rynku nieruchomości, są znacznie bardziej złożone, mają wiele zależności i wymagań i generalnie obejmują kilka osób i organizacji. Inteligentne umowy Ethereum mogą pomóc programistom w tworzeniu oprogramowania, które eliminuje pośredników, usprawnia złożone procesy oraz zmniejsza całkowity koszt i czas wymagany do ukończenia nawet najbardziej skomplikowanych wymian.

Przedstawiamy Solidność, język inteligentnych umów

Inteligentne kontrakty to programy. Przy wystarczających zasobach inteligentne kontrakty mogą zrobić wszystko, co może zrobić każde inne oprogramowanie. Możesz pisać inteligentne umowy Ethereum w kilku językach:

  • Mutan: starszy inteligentny język kontraktów, który został wycofany w 2015 roku. LLL: Język podobny do Lisp, oczywiście opracowany tak, aby wyglądał jak język Lisp. Chociaż LLL jest nadal obsługiwany, nie jest używany w wielu obecnych projektach inteligentnych umów. Wąż: język, który wygląda jak język Python. Od września 2017 r. Serpent nie jest zalecany do obecnego rozwoju. Bambus: stosunkowo nowy język, który koncentruje się na wyraźnym przejściu stanu blockchain i uniknięciu problemów z ponownym wysyłaniem kodu. Viper: Kolejny stosunkowo nowy język, który koncentruje się na bezpieczeństwie i prostocie. Solidność: obecnie najpopularniejszy język programowania inteligentnych umów. Solidność wygląda jak język JavaScript i zapewnia w pełni funkcjonalny język do opracowywania inteligentnych kontraktów ogólnego przeznaczenia.

Solidność to najpopularniejszy język dla inteligentnych umów i ten, na który najczęściej się spotykasz.

Jeśli znasz się na JavaScript, wybranie Solidity będzie trochę łatwiejsze. Jeśli nie znasz dużo kodu JavaScript, to w porządku. Nauczysz się podstaw Solidności z parteru. W rzeczywistości zacznijmy od programu, który może wyglądać znajomo: wszechobecnego programu „Witaj świecie”.

Spójrz na ten bardzo prosty inteligentny kod umowy:

pragma solidność ^ 0.4.25;
umowa helloWorld {
funkcja printHelloWorld () publiczne stałe zwraca (ciąg znaków) {
return „Witaj świecie!”;
}
}

Tak wygląda inteligentny kontrakt Solidity! Po nagłówku definiujesz swoją umowę, a następnie wszelkie funkcje, które składają się na wewnętrzne działanie programu. Po napisaniu i przetestowaniu inteligentnej umowy możesz wdrożyć ją w blockchain, a następnie wykonać. Kiedy wszystko będzie dobrze, twoja inteligentna umowa wyświetli kultową wiadomość „Witaj świecie!”.

Gdy dowiesz się więcej o Solidity, zobaczysz, że przypomina on JavaScript, ale przypomina trochę C ++ i Python. Twórcy Solidity oparli język na wszystkich trzech językach. Obsługuje dziedziczenie, biblioteki i typy zdefiniowane przez użytkownika, które mogą być dość złożone. Jest to także język o typie statycznym, co oznacza, że ​​musisz podać jawne typy danych dla tworzonych i używanych zmiennych.

Przede wszystkim Solidity to inteligentny język programowania kontraktów. Mimo że wygląda jak inne języki, zawiera prymitywy i orientację zaprojektowaną do interakcji z blockchainem Ethereum.

Dokładne zrozumienie inteligentnych umów i Solidności znacznie ułatwi interakcje z Ethereum.

  1. Finanse osobiste Top 10 Ethereum wykorzystuje
Ethereum For Dummies

Michael Solomon

Ogólnie technologia Blockchain, aw szczególności Ethereum, szybko zyskuje na popularności. Coraz więcej organizacji korzysta z Ethereum w nowych projektach. Różnorodność projektów wykorzystujących Ethereum jako podstawę jest prawie nieograniczona.

Szybkie spojrzenie na stan witryny dApps pokazuje, ile projektów Ethereum istnieje w różnych kategoriach i jak popularne są. Przeglądaj dużą liczbę popularnych aplikacji dApps. Ten zasób to świetny sposób, aby być na bieżąco z trendami dApps.

Chociaż te projekty Ethereum to tylko niewielka reprezentatywna próbka tego, co tam jest, dadzą ci trochę informacji o tym, co inni robią z Ethereum. Być może znajdziesz kilka pomysłów na nowe i ekscytujące sposoby, w jakie Ethereum może pomóc w przekształceniu Twojej organizacji.

Pomimo różnorodności funkcjonalności w każdym projekcie, wszystkie są oparte na Ethereum. Każdy projekt wykorzystuje inteligentne kontrakty działające na EVM do realizacji funkcji i blockchain Ethereum do przechowywania danych stanu.

Gnosis przewiduje przyszłe wydarzenia z Ethereum

Gnosis jest jedną z wielu innowacyjnych firm wykorzystujących Ethereum w ciekawy sposób. Gnosis stanowi platformę dla rynków prognoz. Produkt Gnosis Olympia to wersja alfa ich platformy. Korzystając z Olympii, uczestnicy uzyskują początkowe saldo tokenów OLY, udając, że mogą użyć pieniędzy w Olympii, których używają do przewidywania różnych tematów. Uczestnicy mogą wygrać tokeny GNO za pomyślne przewidywanie.

Uczestnicy, którzy skonfigurowali prognozy, kojarzą prognozę z wyrocznią w celu weryfikacji wyników. Na przykład prawdziwą wartość określonej ceny akcji w określonym dniu i godzinie można łatwo sprawdzić, porównując prognozę z opublikowanymi cenami akcji. Źródłem danych dotyczących cen akcji byłaby wyrocznia, której używa prognoza prognozy cen akcji do weryfikacji.

Gnosis Olympia zapewnia uczestnikom platformę do określenia prawdopodobieństwa pewnego wyniku. Możesz użyć Olympia do ustalenia oczekiwanej wartości jakiegoś przedmiotu wartości. Znajomość wartości przedmiotu daje większą dźwignię w negocjacjach.

Innym możliwym przypadkiem użycia są wybory. Mogą pojawić się rozproszone rynki prognoz, które zapewnią lepsze prognozy zbliżających się wyborów. Ankiety polityczne zostały poddane krytyce z powodu braku precyzji, a powstające produkty mogą pomóc zwiększyć ich dokładność.

Augur tłumaczy prognozy zdarzeń

Augur to kolejna oferta w kategorii rynku prognoz. Podobnie jak Gnosis, uczestnicy mogą rejestrować wydarzenia, a następnie przewidywać ich wynik. Augur nagradza uczestników tokenami REP w zamian za podanie dokładnych danych związanych z wydarzeniem i głosowanie większością głosów.

Augur opiera się na danych pochodzących z crowdsourcingu i staje się bardziej dokładny dzięki uwzględnieniu danych uczestników. Dlatego podanie dokładnych danych jest nagrodą. Wyrocznia sprawdza dane dotyczące zdarzeń i ich wyniki, ale nadal kładzie się nacisk na dane wejściowe gromadzone przez tłum.

Augur jest całkowicie zdecentralizowany i działa w oparciu o inteligentne kontrakty i blockchain Ethereum. Jego celem jest zapewnienie globalnego portalu, który generuje lepsze prognozy dotyczące wyników wszelkich przyszłych wydarzeń cieszących się powszechnym zainteresowaniem na całym świecie.

Aragon zarządza zdecentralizowanymi organizacjami za pomocą Ethereum

Aragon to platforma przeznaczona do zarządzania zdecentralizowanymi organizacjami, które często cierpią z powodu braku infrastruktury i funkcjonalności. Uczestnicy Aragonu kupują tokeny sieci Aragon (ANT) z jednej z kilku popularnych giełd kryptowalut i używają ANT do płacenia za usługi Aragon.

Aragon ułatwia rozproszone autonomiczne zarządzanie organizacją, pozyskiwanie funduszy i księgowość. Na przykład uczestnicy Aragonu mogą zadawać pytania swojej organizacji w celu głosowania. Środowisko Aragonii obsługuje wszystkie szczegóły zarządzania procesem głosowania, co skutkuje zweryfikowanymi wynikami wyborów. Głosowanie to tylko jedna z funkcji platformy.

Projekt Aragon ma na celu wzmocnienie zdecentralizowanych uczestników organizacji poprzez promowanie uczestnictwa i zapewnienie przejrzystości finansowej. Aragon umożliwia organizacjom istnienie poza tradycyjnym zhierarchizowanym, scentralizowanym modelem.

Hoduj i zbieraj kryptokitti w Ethereum

Ethereum to nie tylko kryptowaluta i funkcja biznesowa. W kosmosie Ethereum znajdziesz także fajne gry. Cryptokitties, jedna z pierwszych gier opartych na Ethereum, jest nadal popularna. Ta rewolucyjna gra wprowadziła kryptowaluty oparte na blockchain. Zgadza się. Kryptokitti można kolekcjonować.

Każdy kryptokitty jest unikalny. Technicznie rzecz biorąc, każdy kryptokitty jest tokenem ERC-721 i ma unikalny zestaw atrybutów (DNA kryptokitty), które pochodzą od rodziców każdego kryptokitty. Zgadza się, nie tworzysz kryptokryt; hodujesz je.

I tak jak w prawdziwym życiu (cóż, w pewnym sensie) możesz albo zaufać genetycznemu szczęściu, aby stworzyć rzadki i cenny kryptokryt, albo możesz zapłacić opłatę za przekazanie innej kryptokitty za możliwość rozmnażania się za pomocą ich kryptokryt. Każdy kryptokitty ma inną wartość, w zależności od rzadkości jego atrybutów. W przeszłości niektóre kryptowaluty z rzadkimi atrybutami (i korzystnym kursem wymiany ETH) sprzedawane były za ponad 100 000 USD.

Poniższy obraz pokazuje stronę internetową Cryptokitties z przykładami kilku kryptokitties, z których każda ma własne unikalne atrybuty.

grać w kryptokitti z Ethereum

Wymieniaj tokeny na IDEX

Wykorzystywane są tysiące tokenów ERC-20. Zanim będziesz mógł użyć tokena, aby coś zapłacić, musisz go zdobyć. Niektóre tokeny są darmowe, ale inne trzeba kupić. Aby kupić token, musisz wymienić walutę lub kryptowalutę, więc potrzebujesz organizacji, która świadczy usługi wymiany.

IDEX to zdecentralizowana giełda (DEX), która specjalizuje się w handlu między tokenami ETH i ERC-20. Potwierdza transakcje w inteligentnym kontrakcie, nie czekając na wydobycie bloków Ethereum. Zdolność IDEX do potwierdzania transakcji w czasie rzeczywistym pozwala handlowcom handlować w sposób ciągły.

Zamówienia są rejestrowane w blockchain Ethereum w kolejności, w jakiej zostały otrzymane, ale inwestorzy nie muszą czekać na swoje tokeny. Otrzymują je, gdy tylko ich zamówienie zostanie zatwierdzone przez inteligentną umowę.

Ten obraz pokazuje stronę internetową IDEX z listą najbardziej aktywnych tokenów Ethereum ERC-20.

Ethereum IDEX

Użyj Ethereum, aby stworzyć swoją tożsamość cyfrową za pomocą portu uPort

Port dApp to innowacyjna inicjatywa mająca prosty cel: zapewnienie wszystkim zdecentralizowanej tożsamości przechowywanej w blockchainie Ethereum. Użytkownicy rejestrują swoją tożsamość za pośrednictwem portu USB. Po uwierzytelnieniu użytkownicy mogą wykorzystywać tożsamość cyfrową uPort do podpisywania umów cyfrowych i interakcji z innymi usługami, które wymagają potwierdzonych tożsamości.

Port dApp ma wiele potencjalnych zastosowań. Jedną z najbardziej widocznych potrzeb, jaką uPort może pomóc, jest zapewnienie osobom, które zgubiły przedmioty identyfikacji fizycznej, aby w razie potrzeby nadal zapewniały dowód tożsamości. Osoby, które przeżyły katastroficzne zdarzenia, często nie mają z nimi żadnej identyfikacji. Dostęp do niezmiennej identyfikacji cyfrowej może pomóc w rozwiązaniu tego problemu. Tożsamości cyfrowe mogą pomóc w imigracji, głosowaniu i innych przypadkach, w których wymagana jest identyfikacja.

Podziel się swoimi przemyśleniami na temat blockchain z EtherTweet

Jak sama nazwa wskazuje, EtherTweet jest alternatywą blockchain dla Twittera. Główna różnica polega na tym, że EtherTweet jest wolny od cenzury, ponieważ wszystkie wiadomości są przechowywane w blockchain Ethereum. Możesz opublikować do 160 znaków.

Chociaż ceny zmieniają się w zależności od bieżącej wartości eteru, utworzenie konta EtherTweet kosztuje około 2 centów, a każdy tweet kosztuje około jednej trzeciej centa. Poniższy obraz pokazuje stronę internetową EtherTweet z instrukcjami używania interfejsu internetowego do publikowania i czytania tweetów.

EtherTweet

Skorzystaj z Ethereum, aby wyszukać oferty pracy z EthLance

EthLance to platforma rozproszona dla freelancerów i pracodawców, którzy mogą się nawzajem znajdować, angażować w pracę i przekazywać płatności w eterze. EthLance jest częścią sieci district0x, która jest kolekcją zdecentralizowanych rynków i społeczności. Jedną z wyjątkowych funkcji EthLance jest to, że nie pobiera żadnych opłat.

Członkostwo w EthLance jest bezpłatne, a zarówno freelancerzy, jak i pracodawcy mogą korzystać z sieci, aby dopasować personel do wolnych miejsc pracy. Po zakończeniu pracy pracodawcy mogą płacić freelancerom bezpośrednio za pomocą eteru. Cała platforma EthLance działa w Ethereum. Przejrzysty charakter EthLance i model zerowych opłat sprawiają, że jest to świetne źródło informacji dla osób prowadzących działalność na własny rachunek.

Poniższy obraz pokazuje stronę internetową EthLance z grafiką „jak to działa” pokazującą, w jaki sposób freelancerzy i pracodawcy mogą korzystać z usług. Aby dowiedzieć się więcej o EthLance, przejdź do ich witryny internetowej pod adresem.

EthLance

Używanie TenX do płacenia eterem i innymi kryptowalutami

TenX pozwala klientom korzystać z eteru i innych kryptowalut u sprzedawców detalicznych, aby płacić za zakupy na całym świecie. Chociaż większość sprzedawców detalicznych jeszcze nie obsługuje kryptowalut, TenX stworzył własną linię kryptograficznych kart debetowych i kart kredytowych, które łączą się z zastrzeżonym portfelem kryptograficznym. Karty TenX stanowią pomost między kryptowalutami a tradycyjnymi środkami płatniczymi.

TenX rejestruje wszystkie transakcje płatnicze w łańcuchu bloków i ma plany dotyczące większej sieci, która pozwoli aplikacjom komunikować się przez wiele łańcuchów bloków.

Poniższy obraz przedstawia witrynę internetową TenX z obrazem karty debetowej TenX.

Karta debetowa TenX

Użyj Ethereum, aby kupować i sprzedawać moc obliczeniową za pomocą Golema

Ostatnim innowacyjnym projektem Ethereum jest Golem. Golem to zdecentralizowany rynek kupna i sprzedaży mocy obliczeniowej. Bez względu na to, czy masz nadwyżkę mocy obliczeniowej, którą chcesz sprzedać, czy potrzebujesz tymczasowo wynająć więcej mocy obliczeniowej, aby ukończyć projekt, Golem może Ci pomóc. Możesz korzystać z superkomputerów Golem po opłaceniu natywnego tokena GNT lub możesz zarobić GNT za to, że pozwalasz innym wykorzystywać nadwyżkę mocy obliczeniowej.

Strona Golem

Jak widać powyżej, Ethereum można wykorzystać do wszelkiego rodzaju kreatywnych projektów. W jaki sposób Twoja organizacja będzie korzystać z Ethereum?

  1. Finanse osobiste Wybór najlepszego portfela Ethereum dla Ciebie
Ethereum For Dummies

Michael Solomon

Masz wiele możliwości wyboru portfeli Ethereum. Tutaj poznasz najpopularniejsze typy. Możesz użyć tych informacji, aby zdecydować, który portfel Ethereum najlepiej spełni twoje potrzeby.

Portfel Ethereum

Jeśli po przeczytaniu tego nie masz pewności, który z nich jest najlepszym portfelem Ethereum, nie martw się - wybierz ten, który wygląda dobrze i zacznij go używać. Jeśli później zdecydujesz się na inny portfel, proces jest łatwy. Żadna reguła nie mówi, że nie możesz mieć wielu portfeli Ethereum. (To nie jest tak, jakby wcisnąć wiele portfeli do tylnej kieszeni!)

Oprogramowanie portfele Ethereum

Portfele z oprogramowaniem to po prostu programy do generowania, przechowywania i zarządzania kluczami. Do wyboru są portfele internetowe, stacjonarne i mobilne. Dwie podstawowe różnice między opcjami portfela oprogramowania to miejsce ich uruchomienia i miejsce przechowywania kluczy.

Portfele internetowe dla Ethereum

Portfele internetowe są popularne do codziennego użytku w Ethereum. Są łatwe w użyciu i zapewniają wygodny dostęp do kluczy. Aby otworzyć portfel Ethereum, potrzebujesz tylko połączenia z Internetem, przeglądarki internetowej i danych logowania.

Portfele na biurko Ethereum

Portfele na komputery stacjonarne to programy działające na komputerze osobistym. Większość portfeli stacjonarnych przechowuje klucze lokalnie, więc musisz mieć dostęp do komputera, aby otworzyć portfel Ethereum.

Mobilne portfele Ethereum

Portfele mobilne są podobne do portfeli stacjonarnych, ale oprogramowanie działa na urządzeniach mobilnych. Twoje klucze są również często przechowywane na urządzeniu mobilnym. Portfel mobilny to dobra opcja, jeśli zawsze chcesz mieć ze sobą klucze. Wadą jest to, że jeśli stracisz urządzenie mobilne, możesz stracić dostęp do zasobów Ethereum. (Dlatego kopie zapasowe są zawsze dobre).

Sprzętowe portfele Ethereum

Portfele sprzętowe zapewniają dodatkową warstwę bezpieczeństwa dla kluczy, ponieważ są przechowywane na fizycznym układzie wewnątrz urządzenia. Większość portfeli sprzętowych dla Ethereum to urządzenia USB. Aby uzyskać dostęp do kluczy, podłącz urządzenie portfela do komputera lub urządzenia mobilnego, a następnie uruchom oprogramowanie, aby uzyskać dostęp do kluczy.

W zależności od urządzenia oprogramowanie może być oparte na sieci Web lub działać lokalnie na komputerze lub urządzeniu mobilnym. Kilka portfeli oprogramowania zapewnia opcję integracji ze sprzętowymi portfelami Ethereum, aby jeszcze bardziej zabezpieczyć przechowywanie kluczy.

Przechowywanie kluczy na własnym urządzeniu oznacza, że ​​musisz podjąć środki w celu zabezpieczenia urządzenia. Zawsze miej świadomość lokalizacji urządzenia i zawsze miej kopię zapasową na wypadek zagubienia urządzenia.

Papierowe portfele Ethereum

Portfel papierowy jest najprostszym rodzajem portfela Ethereum. Po utworzeniu konta i wygenerowaniu kluczy wystarczy wydrukować klucze na zwykłym kawałku papieru. Twoje klucze istnieją tylko na papierze, którego użyto do ich wydrukowania; nie przechowujesz ich za pomocą oprogramowania lub urządzenia.

Zaletą papierowego portfela Ethereum jest to, że masz najwyższą kontrolę nad swoimi kluczami i nikt inny nie może ich dotknąć. To także największa wada. Musisz podjąć dodatkowe środki ostrożności, aby bezpiecznie przechowywać kopię zapasową na wypadek, gdyby coś się stało z kawałkiem papieru.

Niezależnie od tego, który portfel Ethereum wybierzesz, należy dokładnie rozważyć korzyści, wady, a ostatecznie, jak planujesz go używać.

  1. Finanse osobiste Czym jest Ethereum?
Ethereum For Dummies

Michael Solomon

Ethereum to kompleksowa, zdecentralizowana platforma aplikacji, która rozszerza zakres możliwości wykraczający poza to, co było możliwe przed technologią blockchain. Co wyróżnia go spośród innych zdecentralizowanych platform? Oto trochę tła Ethereum.

Przedstawiamy Ethereum

Bitcoin był pierwszą aplikacją technologii blockchain. Był rewolucyjny i zdefiniował pierwszą szeroko stosowaną walutę cyfrową, zwaną kryptowalutą. Część kryptograficzna nazwy odnosi się do użycia skrótów kryptograficznych w celu zapewnienia integralności łańcucha bloków. Wspólna księga dosłownie przechowuje kopię każdej transakcji kryptowalut, która jest weryfikowana przez wszystkie węzły.

Korzystając z tego podejścia, Bitcoin stworzył stały rejestr każdej wymiany ich kryptowaluty. A ponieważ właściciele kont są identyfikowani tylko na podstawie adresu, bitcoin zawsze cieszył się pewną dozą anonimowości.

Chociaż adresy bitcoinów nie są bezpośrednio powiązane z ludźmi, wiele giełd ma zapisy tożsamości związane z adresami. W pewnym momencie musisz wymienić swoją kryptowalutę na prawdziwą walutę. Ten punkt przejścia jest miejscem, w którym skupia się wielu funkcjonariuszy organów ścigania, próbując wyśledzić przestępców za pomocą kryptowaluty.

Gdy bitcoin stał się coraz bardziej popularny, badacze zaczęli widzieć więcej aplikacji dla technologii blockchain poza kryptowalutą. W 2013 r. Vitalik Buterin, współzałożyciel magazynu Bitcoin, opublikował oficjalną dokumentację, w której zaproponowano nową, bardziej funkcjonalną implementację blockchain. Ta nowa propozycja dotyczyła blockchaina Ethereum. Po uzyskaniu zainteresowania i przyciągnięciu wsparcia technicznego i finansowego, powstała Ethereum Foundation, szwajcarska organizacja non-profit, która stała się deweloperem Ethereum.

Ethereum nie powstał tylko po to, by wymieniać kryptowaluty. W rzeczywistości został zaprojektowany od samego początku, by był inny. Podstawowe cechy Ethereum to inteligentny kontrakt i eter.

Ether jest natywną kryptowalutą obsługiwaną przez Ethereum, chociaż możesz tworzyć własne tokeny w celu wymiany wartości w wielu innych formach. Inteligentne kontrakty zapewniają środowisko wykonawcze, które zapewnia integralność we wszystkich węzłach. Każdy kod wykonywany w jednym węźle wykonuje się w ten sam sposób we wszystkich węzłach. Ta gwarancja umożliwia wdrożenie szerokiej gamy aplikacji w niezaufanych środowiskach.

Podstawowe gwarancje Ethereum zapewnia wsparcie dla wielu rodzajów wymiany wartości bez obawy o oszustwo, cenzurę lub jakiekolwiek zaangażowanie strony trzeciej. Podczas interakcji z aplikacją Ethereum nie musisz polegać na żadnym pośredniku, aby pośredniczyć w transakcjach. Nie potrzebujesz banku, hurtownika ani brokera transakcji, aby zapewnić zaufanie. W wyniku dezintegracji Ethereum często możesz szybciej realizować transakcje, przy znacznie niższych opłatach za usługi i bez konieczności uzyskania zgody władz zewnętrznych.

Podczas gdy starsze rozwiązania w zakresie udostępniania danych i procesów wymagały od organów zewnętrznych egzekwowania integralności, Ethereum zapewnia integralność procesów i danych wraz z dezintermediacją. Możliwości dopiero zaczynają być badane.

Badanie konsensusu, wydobycia i inteligentnych kontraktów Ethereum

Ethereum zapewnia integralność w zakresie wdrażania niezmienności i inteligentnych umów. Niezmienność nie jest w rzeczywistości gwarancją blockchain. Możesz zmieniać dane w dowolnym bloku - nawet po dodaniu innych bloków do łańcucha bloków. Jednak natychmiast po zmianie bloku blok ten i wszystkie kolejne bloki nie sprawdzają integralności, a węzeł nie jest zsynchronizowany. Zamiast powiedzieć, że łańcuch bloków jest niezmienny, dokładniej jest powiedzieć, że wszelkie zmiany (mutacje) łańcucha bloków można łatwo i natychmiast wykryć.

Ethereum opiera się na demokracji. Każdy węzeł otrzymuje równy głos. Za każdym razem, gdy węzły otrzymują nowy blok do dodania do łańcucha bloków, sprawdzają poprawność bloku i jego transakcji, a następnie głosują, czy zaakceptować, czy odrzucić blok. Jeśli kilka różnych bloków jest przesyłanych przez różne węzły, tylko jeden z bloków może odbierać głosy większością głosów. Blok, który otrzymuje ponad połowę głosów w węźle sieci, dołącza do łańcucha bloków jako jego najnowszy blok.

Jednym z pierwszych problemów jest ustalenie, kiedy nowy blok jest gotowy na łańcuch bloków. Po przesłaniu zbyt wielu sprzecznych bloków proces głosowania zwalnia. Ethereum utrudnia dodawanie nowych bloków, aby utrzymać niską liczbę kolizji bloków i przyspieszyć głosowanie. Ethereum wykorzystuje protokół konsensusowy o nazwie Proof of Work (PoW), który określa zasady sprawdzania poprawności i dodawania nowych bloków. PoW utrudnia dodawanie bloków do łańcucha bloków, ale przynosi zyski.

Ethereum definiuje eter jako swoją kryptowalutę. Możesz przenosić eter między kontami lub zarabiać, wykonując ciężką pracę dodając bloki do łańcucha bloków Ethereum. Mechanizm Ethereum PoW wymaga, aby węzły znalazły liczbę, która w połączeniu z danymi nagłówka bloku tworzy kryptograficzną wartość skrótu odpowiadającą bieżącemu celowi, która jest wartością dostosowywaną w celu utrzymania stałej produkcji nowego bloku.

Znalezienie wartości skrótu pasującej do bieżącego celu jest trudne. Musisz znaleźć średnio więcej niż kwadrylion wartości, aby znaleźć właściwą. O to chodzi. Korzystanie z mechanizmu PoW sprawia, że ​​przesyłanie bloku jest tak trudne, że przesyłanych jest mniej bloków, co zmniejsza liczbę kolizji. Węzeł, który znajdzie odpowiednią wartość, otrzymuje niewielką płatność eterową za wysiłek. Ten proces nazywa się wydobywaniem, a węzłem, który wygrywa nagrodę, jest górnik tego bloku.

Wydobycie reguluje szybkość, z jaką nowe bloki są zgłaszane jako bloki kandydujące, i daje liczbę łatwą do zweryfikowania. Znalezienie odpowiedniej liczby do rozwiązania zagadki jest trudne, ale weryfikacja liczby jest szybka i łatwa. Kolejnym interesującym aspektem wyszukiwania jest to, że nagłówek każdego bloku zawiera skrót z poprzedniego bloku. Węzły Ethereum używają skrótu, aby łatwo wykryć nieautoryzowane zmiany bloków. Jeśli blok się zmienia, wynik mieszania nie pasuje, a blok staje się nieprawidłowy.

Kryptowaluta wydobywcza to także sposób na zarabianie pieniędzy za pomocą technologii blockchain. Wydobycie stało się konkurencyjne i większość dzisiejszych górników inwestuje w wysokowydajny sprzęt z wieloma procesorami graficznymi, aby wykonywać złożone operacje. Aby zachować uczciwość procesu wydobycia, Ethereum wykorzystuje wartość złożoności, która sprawia, że ​​proces wydobywania jest jeszcze trudniejszy, gdy górnicy stają się szybsi. Dostosowanie złożoności pozwala Ethereum regulować częstotliwość nowego bloku do średnio jednego nowego bloku co 14 sekund.

Klej, który utrzymuje środowisko Ethereum razem, jest inteligentnym kontraktem. Ethereum to znacznie więcej niż tylko księga finansowa, a inteligentne kontrakty zapewniają wiele z jego bogatej funkcjonalności. Każdy węzeł Ethereum uruchamia kopię maszyny wirtualnej Ethereum (EVM).

EVM uruchamia kod inteligentnego kontraktu w sposób, który gwarantuje, że inteligentne kontrakty wykonują się w ten sam sposób na wszystkich węzłach i generują takie same wyniki. Uruchomienie inteligentnego kodu umowy nie jest opcjonalne. Inteligentne kontrakty są realizowane w oparciu o określone zasady i nie można ich obalić ani zatrzymać. Gwarancje inteligentnej umowy EVM zapewniają stabilną platformę do automatycznego przetwarzania transakcji, której możesz zaufać. Inteligentne kontrakty zapewniają podstawową moc środowiska Ethereum.

Jedną ze znanych słabości oprogramowania jest to, że osoby atakujące mogą czasami ominąć jego kontrolę i wykonać niezamierzone działania. Ten rodzaj ataku jest trudniejszy w Ethereum, głównie ze względu na inteligentną realizację kontraktu. Atakujący nie mogą bezpośrednio atakować łańcucha bloków i dokonywać nieautoryzowanych zmian, ponieważ wszelkie takie zmiany zostaną natychmiast wykryte

Kolejnym najbardziej prawdopodobnym wektorem ataku jest inteligentny interfejs umowy do danych blockchain. Ethereum gwarantuje, że inteligentny kod kontraktowy, który jest tłumaczony na kod bajtowy, zanim zostanie zapisany w blockchain, wykonuje się na każdej instancji EVM w ten sam sposób. Ponadto EVM określa, kiedy kod zostanie wykonany i jaki kod zostanie wykonany. Atakujący mają niewiele możliwości wykorzystania inteligentnego kodu kontraktu, co czyni Ethereum jeszcze bardziej bezpiecznym środowiskiem.

Platforma Ethereum jako całość oferuje możliwości wykraczające poza obecne zastosowania blockchain.

  1. Personal Finance 10 zasad projektowania aplikacji rozproszonych Blockchain
Ethereum For Dummies

Michael Solomon

Technologia Blockchain to destrukcyjne, transformacyjne podejście do sposobu zarządzania danymi. Obiecuje to radykalną zmianę sposobu, w jaki wykonujemy zadania, które obsługują poufne informacje we wspólnych środowiskach. Krytyczne operacje na newralgicznych danych w przeszłości wymagały silnego organu centralnego, aby przekonać właścicieli danych do zaufania środowisku w stopniu umożliwiającym zarządzanie jego danymi.

Jedną z trudniejszych przeszkód, które musi pokonać każdy blockchain dApp, jest budowanie zaufania. Użytkownicy muszą ufać, że oprogramowanie działające w blockchain zawiera solidne środki zapewniające bezpieczeństwo i ochronę prywatności, zanim dostarczy wrażliwych danych osobowych i biznesowych.

Możesz przejść długą drogę w kierunku budowania tego zaufania, przestrzegając kilku podstawowych wytycznych projektowych. Jeśli zastosujesz się do dziesięciu celów projektowych dla aplikacji blockchain, które tutaj znajdziesz, pomożesz zachęcić użytkowników do zaufania Twojej aplikacji na tyle, aby z niej korzystać i na niej polegać.

Projektuj aplikacje blockchain dla zaufania

Jednym z głównych powodów, dla których większość organizacji dąży do rozwiązań blockchain, jest możliwość dzielenia się danymi między węzłami, które nie ufają sobie nawzajem. Jeśli się nad tym zastanowić, to naprawdę wyznacza wysoki poziom dla programistów dApp. Aby opracować udany dApp, musisz przekonać użytkowników, aby zaufali Twojemu oprogramowaniu, przesyłając je do dużej liczby innych węzłów, którym nie ufasz (a także nie ufają).

Zaufanie jest zwykle (ale nie zawsze) przechodnie. (Tak, wracasz na lekcje matematyki. Jeśli A = B i B = C, to A = C. Nie ma za co.) Jest to najczęstszy sposób, w jaki my, ludzie, traktujemy zaufanie.

Jeśli ufasz Mary, a Joe ufa tobie, to prawdopodobnie Joe nie ma nic przeciwko zaufaniu Mary. Załóżmy, że jesteś krytykiem kulinarnym. Joe ufa, że ​​polecasz dobre jedzenie. Jeśli opublikujesz, że naprawdę podoba ci się brzoskwiniowe ciasto Mary, wtedy Joe będzie bardziej skłonny spróbować jej brzoskwiniowego ciasta, ponieważ Joe ufa twojemu smakowi jedzenia. Ale to nie śledzi w środowisku bez zaufania. W przypadku blockchain dApps użytkownicy ufają tobie, ale nie ufasz innym we własnej sieci blockchain.

Twoim pierwszym celem projektowym jest cel na wysokim poziomie, który musisz zachować jako najważniejszy czynnik motywujący wszystkie decyzje. Wiele kolejnych celów projektowych obsługuje ten cel: Zaprojektuj swoje aplikacje dla zaufania. Ten cel oznacza, że ​​chcesz zastanowić się, co Twoi użytkownicy chcą i co sprawia, że ​​czują, że mogą zaufać Twojemu dApp.

Użytkownicy muszą wiedzieć, że zadbasz o ich dane. Twój dApp nie powinien niczego ukrywać i powinien ułatwiać sprawdzanie, co się dzieje. Powinien wyraźnie przekazywać dobre i złe informacje oraz zapewniać ogólne poczucie dobrobytu. Chociaż jest to wysokie zamówienie na oprogramowanie, konieczne jest budowanie zaufania.

Najważniejszym aspektem projektowania zaufania jest zrozumienie, kim są Twoi użytkownicy i co sprawia, że ​​czują się komfortowo. Krótko mówiąc, poznaj swoich użytkowników. Wiedz, czego chcą i jak możesz ich przekonać, że nie zmarnujesz czasu ani nie wykorzystasz ich zaufania do Ciebie.

Wymuszaj spójność w aplikacjach blockchain

Jednym z najprostszych sposobów uniknięcia nieporozumień jest ograniczenie opcji i konfliktów w aplikacji dApps. Microsoft już dawno nauczył się spójności. Opracowali standardy interakcji z użytkownikami oraz zbadali i zdefiniowali każdy aspekt tworzenia interfejsu użytkownika. Właśnie dlatego aplikacje Microsoft są do siebie podobne.

Jeśli korzystałeś z jednej aplikacji Microsoft, rozpoznasz przynajmniej ogólny interfejs użytkownika w innych aplikacjach Microsoft. (A jeśli od jakiegoś czasu korzystasz z produktów Microsoft, pamiętasz ogromne zakłócenia, które Microsoft spowodował, gdy przekonwertowali je na interfejs użytkownika oparty na kafelkach - głównie dlatego, że wszyscy czuli się komfortowo ze starszym interfejsem Microsoft).

Na przykład, jeśli chcesz znaleźć bieżącą wersję uruchomionego programu Windows, prawie zawsze możesz kliknąć lub stuknąć Pomoc, a następnie kliknąć lub stuknąć pozycję menu Informacje w menu Pomoc.

Poniższy obraz pokazuje pozycję menu About w VS Code. Element menu Informacje istnieje w prawie każdej aplikacji Windows i pokazuje podstawowe informacje, w tym numer wersji, uruchomionego programu. Ten prosty przykład spójności interfejsu użytkownika ułatwia każdemu znalezienie informacji o aplikacji bez konieczności szukania jej.

Kod VS Ethereum

Poniższy obraz pokazuje okno dialogowe Informacje w kodzie VS. Informacje o wersji większości aplikacji Windows można znaleźć, klikając lub stukając Pomoc → Informacje. To jest siła spójności.

Okno dialogowe Informacje o kodzie VS

Twoje dApps powinny określać jasne standardy dla każdej interakcji użytkownika. Gdy poprosisz użytkowników o podanie danych wejściowych, zrób to w ten sam sposób w całym dApp. Gdy użytkownik wprowadza identyfikator produktu w wielu miejscach, pole wprowadzania powinno wyglądać tak samo w każdej lokalizacji. Użyj tych samych kolorów, czcionek i metody wprowadzania, aby nadać dApp spójny wygląd.

Kolejnym obszarem, w którym znajdziesz spójność w aplikacjach GUI, są skróty klawiaturowe. Prawie zawsze możesz użyć Ctrl-C, aby skopiować podświetlony tekst i Ctrl-V, aby wkleić ten tekst w nowej lokalizacji. Spójne skróty klawiaturowe jeszcze bardziej ułatwiają naukę i korzystanie z nowego oprogramowania.

W ten sam sposób ustandaryzuj wszystkie dane wyjściowe. Komunikaty o błędach i alerty są podstawowymi obszarami normalizacji. Jeśli to możliwe, używaj wspólnych warstw wejściowych i wyjściowych, aby wszystkie dane wejściowe i wyjściowe korzystały z tego samego zestawu funkcji. Cały dApp będzie wyglądał bardziej spójnie.

Próbujesz zachęcić użytkowników do dalszego korzystania z aplikacji. DApp, który prezentuje spójny interfejs użytkownika, to taki, który buduje zaufanie. Spójność ułatwia również użytkownikom naukę korzystania z oprogramowania, a łatwa do nauczenia się aplikacja to taka, którą użytkownicy prawdopodobnie będą preferować i akceptować.

Przezroczystość usuwa wątpliwości z aplikacji blockchain

Jednym z powodów, dla których użytkownicy nie ufają aplikacji, jest to, że tak naprawdę jej nie rozumieją. Użytkownicy podają swoje dane, ale nie są pewni, co się potem stanie. Nie wiedzą, dokąd idą ich dane i czy w ogóle są jeszcze gdzieś w systemie. To uczucie umieszczania danych w czarnej skrzynce może być jeszcze silniejsze dzięki blockchain dApps.

Ponieważ technologia blockchain staje się coraz bardziej popularna, ogólna świadomość jej funkcji rośnie. Oznacza to, że wielu użytkowników wie, że dApp wysyła dane do wielu innych komputerów, potencjalnie na całym świecie. Jedną z przeszkód, które będziesz musiał pokonać, jest przekonanie użytkowników, że chronisz ich wrażliwe dane.

Wyraźnie komunikuj, jakich danych potrzebuje Twój dApp, dlaczego potrzebuje każdego rodzaju danych i co z nimi robisz. Nie musisz przekazywać tych informacji za każdym razem, gdy poprosisz o dane, ale powinny one być dostępne przy pierwszej interakcji z nowym użytkownikiem, a następnie na żądanie.

Powinieneś także ułatwić użytkownikom zobaczenie, co zrobili (i co dApp zrobił z ich danymi). Zapewnienie przejrzystości na każdym kroku daje użytkownikom poczucie pewności.

Ułatw użytkownikom wyszukiwanie informacji i weryfikację działań. Ten poziom przejrzystości daje użytkownikom pewność, że dApp robi to, co twierdzi, i może zmniejszyć obawy, że dApp coś ukrywa. W zależności od poziomu troski użytkownika i własnych wytycznych projektowych można wbudować przezroczystość w każdy przepływ pracy lub w funkcje na żądanie, aby umożliwić zaawansowanym użytkownikom drążenie w dowolnym momencie.

Przekaż opinię, wskazówki i określ oczekiwania dotyczące aplikacji blockchain

Kolejnym celem projektu, którego potrzebujesz dla swojej aplikacji blockchain, jest dostarczanie informacji zwrotnych i wskazówek oraz ustalanie oczekiwań. Ten cel jest logicznym rozszerzeniem przejrzystości. Podczas gdy przezroczystość sprawia, że ​​szczegóły transakcji i przepływu pracy są łatwo dostępne dla użytkowników, informacje zwrotne, wskazówki i oczekiwania przewidują przejrzystość w normalnym przepływie pracy. Zamiast po prostu pozwalać użytkownikom zobaczyć, co się stało, powinieneś przekazywać im informacje zwrotne na każdym znaczącym etapie przepływu pracy.

Na przykład, jeśli jesteś producentem i właśnie przeniosłeś własność nowego ciągnika na spedytora, nowy łańcuch dostaw dApp może wyświetlić komunikat „Właśnie przekazałeś ciągnik o numerze seryjnym ABC-12345 do Unified Shipping - Numer transakcji 456778 . ”Oczywiście, prawdopodobnie uzyskałbyś więcej szczegółów na temat przeniesienia przedmiotu inwestycyjnego, ale masz pomysł. DApp dostarczył informację zwrotną, która zasadniczo mówi „Hej, dobra robota. Oto, co zrobiłeś. ”Informacje zwrotne są pierwszym krokiem do przekonania użytkowników, aby zaufali Twojemu dApp. Informacje zwrotne dają im pewność, że prawidłowo używają oprogramowania.

Możesz rozszerzyć przykład opinii, aby poinformować użytkowników o kolejnym kroku. W przykładzie ciągnika wiadomość zwrotna może również zawierać komunikat „Czy chcesz teraz wydać tytuł?” Z opcją kliknięcia lub stuknięcia przycisku, aby przejść do następnego kroku. Podpowiedzi na zakończenie zadania, takie jak ta, pomagają upewnić się, że użytkownicy rozumieją prawidłowy przepływ pracy i sprawiają wrażenie, że oprogramowanie pomaga im poprawnie wykonywać swoje zadania. Gdy oprogramowanie zwiększa efektywność użytkowników, znacznie zwiększa zaufanie. Wszyscy kochają oprogramowanie, które sprawia, że ​​wyglądają dobrze!

Radzisz sobie z błędami w aplikacji blockchain dzięki klasie

Spójrz prawdzie w oczy, błędy się zdarzają. A czasem te błędy są duże. Mam nadzieję, że podczas testowania znalazłeś wszystkie duże błędy w swoim oprogramowaniu. (Testy zostały wyczerpujące, prawda?) Jeśli tak, większość błędów napotkanych podczas produkcji to błędy użytkownika.

Kiedy zajmujesz się błędami użytkownika, staraj się unikać powiadomień, które subtelnie mówią „Zawiedliście!”. Skoncentruj się na rozwiązaniu sytuacji, a nie na obwinianiu.

Prawdopodobnie pamiętasz korzystanie z pierwszego urządzenia GPS w samochodzie. We wczesnych dniach GPS, jeśli zboczyłeś z sugerowanej trasy, usłyszałeś dość surowy komunikat „Zmiana trasy”. Głos równie dobrze mógłby powiedzieć: „Nie idziesz tam, gdzie ci powiedziałem. Poczekaj, powiem ci, jak wrócić do tego, co ci powiedziałem. ”Komunikaty o błędach powinny informować użytkowników o tym, co się stało, ale skupić się na tym, co dalej. Tak, GPS to zrobił, ale generalnie było to po subtelnym besztaniu. Nie besztaj swoich użytkowników.

Z drugiej strony nie poświęcaj zbyt dużo czasu na skupianie się na błędach. Zbyt szczegółowe komunikaty o błędach mogą być mylące i ich odczytanie może potrwać zbyt długo. Przejdź do rzeczy. Zawsze projektuj obsługę błędów z perspektywy użytkownika. Daj użytkownikom wszystko, czego potrzebują, aby szybko i zdecydowanie reagować na błędy i nic więcej.

Komunikaty o błędach pomagają użytkownikom końcowym zrozumieć, co się dzieje, a także pomagają personelowi wsparcia podczas rozwiązywania problemów. Zaprojektuj swój system przesyłania komunikatów o błędach, tak aby zapewniał niezbędne komunikaty użytkownika oraz bardziej szczegółowe komunikaty na żądanie w celu rozwiązywania problemów i dochodzeń.

Pamiętaj, że łańcuch bloków jest niezmienny, więc wszelkie błędy, które zamieniają go w blok, zawsze będą istnieć. Twój dApp powinien rozwiązać problemy użytkownika z danymi przed zapisaniem tych danych w łańcuchu bloków. Sztuczka w radzeniu sobie z błędami polega na prowadzeniu użytkowników do właściwego rozwiązania bez spowalniania ich. Wymaga to zwrócenia uwagi na to, kim są Twoi użytkownicy, jak korzystają z Twojego dApp i czego potrzebują, aby rozwiązać problem. Jednym z celów projektowych powinno być zapewnienie obsługi błędów, która we wszystkich przypadkach spełnia potrzeby użytkowników.

Funkcje projektowania w aplikacji blockchain, które koncentrują się na działaniach użytkownika, a nie danych

Funkcje zapewniają działanie inteligentnych umów. Jednym ze sposobów spojrzenia na inteligentne kontrakty jest to, że składają się one z danych (rzeczowników) i działań (czasowników). Tworzenie ram inteligentnych umów w ten sposób ułatwia ich opisywanie i projektowanie, i generalnie skutkuje aplikacją, która dobrze przepływa z perspektywy użytkownika.

Ponieważ istnieją wszystkie aplikacje spełniające wymagania niektórych użytkowników, sensowne jest projektowanie oprogramowania w świetle użytkownika. Na najwyższym poziomie, jeśli użytkownik chce utworzyć nowe zamówienie, powinieneś zacząć od funkcji o nazwie createNewOrder (). Możesz zmieniać rzeczy, dopracowując swój projekt, ale zaczynając od perspektywy użytkownika, pomagasz zachować autentyczność celów oprogramowania. Projektowanie komponentów technicznych, które spełniają cele użytkownika, pomaga również uniknąć zbytniego odchodzenia od celów funkcjonalnych wysokiego poziomu.

Wiele dzisiejszych organizacji tworzących oprogramowanie polega na metodach zaczynających się od historii użytkowników. Jako programista zostaniesz poproszony o wyprodukowanie oprogramowania spełniającego wymóg, który wygląda następująco: „Jako użytkownik chcę ____”. Rozpoczęcie inteligentnej umowy z funkcją pasującą do tego, co użytkownicy chcą zrobić (to znaczy wypełnionego -w pustej pozycji z poprzedniego oświadczenia), jest dobrą strategią projektową do tworzenia oprogramowania przyjaznego dla użytkownika.

Każda funkcja nie musi być bezpośrednio przypisana do działań użytkownika, ale funkcje wysokiego poziomu powinny wyglądać, jakby odpowiadały opowieściom użytkowników. Zawsze będziesz potrzebował funkcji zorientowanych na zadania lub danych na niższym poziomie, aby wykonać techniczne kroki każdego zadania. Nie ma problemu, jeśli te funkcje nie są mapowane bezpośrednio na historie użytkowników. Ale wszystkie funkcje niższego poziomu powinny odgrywać rolę w funkcjach, z którymi użytkownicy wchodzą w interakcje. Zasadniczo, twoje funkcje publiczne powinny wyglądać podobnie do odpowiedzi na historie użytkowników.

Przechowuj dane aplikacji blockchain na podstawie działań użytkownika, a nie struktur danych

Użytkownicy mogą nie wchodzić w bezpośrednią interakcję z danymi, ale nadal należy próbować organizować dane w oparciu o wymagania użytkowników. Ten ogólny cel jest raczej ogólną zasadą. Wykorzystaj ten cel przy początkowym projektowaniu wymagań dotyczących inteligentnych danych kontraktowych. Prawdopodobnie będziesz musiał udoskonalić projekt i zmienić go, ale począwszy od danych mapowanych na żądania użytkowników, Twoje oprogramowanie pozostanie zgodne z wymaganiami użytkownika.

Na przykład, jeśli projektujesz oprogramowanie do tworzenia i zarządzania zamówieniami, zacznij od instrukcji Solidity struct, która definiuje zamówienie tak, jak widzi je użytkownik. Zamówienie może być zbiorem pól, które go opisują, takich jak numer zamówienia, data zamówienia, zamówienie klienta, instrukcje i lista wierszy zamówienia. Wiersze zamówienia zawierają pola takie jak numer produktu, cena i ilość. Możesz to zdefiniować jako strukturę zmiennych i listę struktur linii zamówienia.

Niezależnie od technicznych szczegółów definiowania danych, głównym celem tego celu jest rozważenie, w jaki sposób użytkownicy będą wykorzystywać dane, i próba prezentacji danych w ten sposób. Jeśli udostępniasz zamówienia bezpośrednio użytkownikom w celu promowania przejrzystości w swoim oprogramowaniu, chcesz, aby zamówienia były jak najłatwiej dostępne. Nie chcesz promować przejrzystości, a następnie zmuszać użytkowników do dokładnego zrozumienia, co oznaczają Twoje dane. Ułatwienie dostępu do danych i ich zrozumienie zbuduje jeszcze większe zaufanie.

Prosta aplikacja blockchain

Przy projektowaniu dApp należy wziąć pod uwagę wiele rzeczy. Chociaż skupienie się na użytkownikach powinno pomóc w bezpośrednim podejmowaniu decyzji projektowych, tendencją jest próba zaspokojenia każdej potrzeby użytkownika. Jeśli pozostanie niezaznaczone, to pragnienie zrobienia wszystkiego sprawi, że twoje oprogramowanie będzie zbyt złożone i trudne w użyciu. Dawanie użytkownikom wielu opcji na pierwszy rzut oka wydaje się dobrym celem, ale przytłoczony użytkownik nie będzie lubił (ani nie używał) oprogramowania.

Ogólne powiedzenie „bądź prosty, głupi” jest nadal aktualne. To surowe przypomnienie, że prostota jest znacznie mądrzejsza niż złożoność. Być może słyszałeś, że „zdezorientowany umysł zawsze mówi nie”, ale chcesz, aby użytkownicy zaakceptowali i używali twojego dApp. Chcesz, aby odkryli, że Twoje oprogramowanie czyni je bardziej efektywnymi i wydajnymi. Aby osiągnąć te cele, musisz ułatwić sobie zrozumienie i korzystanie z oprogramowania.

Prostota zaczyna się od interfejsu użytkownika, ale na tym się nie kończy. Każdy aspekt projektowania funkcjonalnego i danych aplikacji musi być tak prosty, jak to możliwe. Nie próbuj robić zbyt wiele. Zamiast tego określ, czego Twoi użytkownicy potrzebują i chcą najbardziej, i zrób to. Priorytet funkcji, która wyróżni Twoje oprogramowanie. Prostota wymaga więcej pracy, ale często skutkuje ukierunkowanym, spójnym produktem, z którego będą korzystać użytkownicy.

Oczekuj, że dostęp do blockchain będzie drogi

Innym przydatnym celem projektowym, który pomoże ci uniknąć przeróbek po opracowaniu, jest udawanie od samego początku, że przechowywanie danych w blockchain jest drogie. Ponieważ w rzeczywistości tak jest. Dla wielu, którzy zaczęli programować już w odległej przyszłości Y2K, pamięć masowa jest dziś znacznie tańsza niż kiedyś. Obecnie większość programistów nie musi martwić się o rozmiar danych ani miejsce ich przechowywania. Blockchain to wszystko zmienia. Teraz, zamiast dysponować mnóstwem taniego i szybkiego magazynu, musisz płacić na bieżąco.

Drogie miejsce do przechowywania nie jest niczym nowym w Blockchain, ale łatwo o nim zapomnieć. Jeśli przypomnisz sobie, że przestrzeń dyskowa jest wcześnie kosztowna, bardziej prawdopodobne jest, że przemyślisz opcje przechowywania bardziej szczegółowo.

Na przykład, czy musisz przechowywać miasto i podać miejsce, w którym produkt zostanie wysłany? Miasto i stan zależą od kodu pocztowego (lub kodu pocztowego w bardziej ogólnych ustawieniach). Możesz zapisać kod pocztowy w adresie wysyłkowym, a następnie po prostu wyszukaj odpowiednie miasto i stan za pomocą internetowego interfejsu API w czasie wykonywania.

Oddzielanie danych, takich jak przykład kodu pocztowego, może nie mieć sensu w przypadku Twojej aplikacji, ale zawsze skorzystasz z przemyślenia opcji przechowywania danych. Najdroższe opcje przechowywania są prawie zawsze wynikiem złego planowania projektu. Nie projektuj blockchain dApps w taki sam sposób, jak projektujesz tradycyjne aplikacje bazodanowe. Po prostu to nie to samo. Projektuj z innym nastawieniem, a skończysz na lepszym oprogramowaniu.

Trzymaj się z dala od użytkowników aplikacji blockchain

Dobra aplikacja blockchain spełnia najważniejsze potrzeby użytkowników w sposób, który pomaga im być bardziej wydajnym i wydajnym. Jednak Twój projekt powinien uwzględniać nie tylko to, co robi Twoja aplikacja, ale także to, czego nie robi.

Każda aplikacja ma ograniczenia i ograniczenia. Ten cel projektowania koncentruje się na innej rzeczy, której nie robi aplikacja: nie przeszkadza użytkownikowi. Mówiąc najprościej, twoja aplikacja powinna pomagać użytkownikom, a nie spowalniać ich działanie. Interfejs użytkownika powinien pomagać użytkownikom w wykonywaniu ich zadań, a przejścia między elementami interfejsu użytkownika powinny być intuicyjne i pouczające w razie potrzeby.

Czasami musisz pobrać dane od użytkowników, a następnie przechowywać je w blockchain. (Pamiętasz, że to jest drogie, prawda?) Ponieważ wiesz, że zmusisz użytkowników do płacenia za przechowywanie danych w blockchainie, nie każ im też na to czekać. O ile to możliwe, pozwól użytkownikom zrobić coś produktywnego, podczas gdy funkcja, która obsługuje ich dane, działa w tle. To może być dobre miejsce w kodzie do używania zdarzeń.

Rób wszystko, co możesz, aby nie stać się przeszkodą dla użytkowników. Nikt nie lubi czekać. Projektuj z myślą, a Twój produkt będzie miał znacznie większą szansę zaspokojenia potrzeb użytkowników.