Menggunakan Template AWS Blockchain untuk Ethereum - AWS Blockchain Templates

Blockchain Templates AWS dihentikan pada 30 April 2019. Tidak ada pembaruan lebih lanjut untuk layanan ini atau dokumentasi pendukung ini akan dibuat. Untuk pengalaman Blockchain Terkelola terbaikAWS, kami sarankan Anda menggunakan Amazon Managed Blockchain (AMB). Jika Anda memiliki pertanyaan tentang AMB atau memerlukan dukungan lebih lanjut untuk memindahkan beban kerja Anda ke AMB, hubungi,AWS Support atau timAWS akun Anda.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Template AWS Blockchain untuk Ethereum

Ethereum adalah kerangka kerja blockchain yang menjalankan kontrak cerdas menggunakan Soliditas, bahasa khusus Ethereum. Homestead adalah rilis terbaru dari Ethereum. Untuk informasi selengkapnya, lihatDokumentasi HomesteaddanSoliditasdokumentasi.

Tautan ke Peluncuran

LihatMemulai dengan Template AWS Blockchainuntuk tautan yang akan diluncurkanAWS CloudFormationdi Daerah tertentu menggunakan template Ethereum.

Opsi Ethereal

Ketika Anda mengkonfigurasi jaringan Ethereum menggunakan template, Anda membuat pilihan yang menentukan persyaratan berikutnya:

Memilih Platform Kontainer

AWS Blockchain Templates menggunakan kontainer Docker yang disimpan di Amazon ECR untuk menyebarkan perangkat lunak blockchain. Template Blockchain AWS untuk Ethereum menawarkan dua pilihan untukPeron kontainer:

  • ecs—Menentukan bahwa Ethereum berjalan pada klaster Amazon ECS dari instans Amazon EC2.

  • docker-lokal—Menentukan bahwa Ethereum berjalan pada instans EC2 tunggal.

Menggunakan Platform Kontainer Amazon ECS

Dengan Amazon ECS, Anda membuat jaringan Ethereum Anda di klaster ECS yang terdiri dari beberapa instans EC2, dengan Application Load Balancer dan sumber daya terkait. Untuk informasi selengkapnya tentang penggunaan konfigurasi Amazon ECS, lihatMemulai dengan AWS Blockchain TemplatesTutorial.

Diagram berikut menggambarkan jaringan Ethereum yang dibuat menggunakan template dengan opsi platform kontainer ECS:

Menggunakan Platform Docker-Local

Atau, Anda dapat meluncurkan kontainer Ethereum dalam instans Amazon EC2 tunggal. Semua kontainer berjalan pada instans EC2 tunggal. Ini adalah pengaturan yang disederhanakan.

Diagram berikut menggambarkan jaringan Ethereum yang dibuat menggunakan template dengan opsi platform kontainer docker-lokal:

Memilih Jaringan Ethereal Pribadi atau Publik

MemilihID Jaringan Etherealnilai selain 1—4 menciptakan node Ethereum pribadi yang berjalan dalam jaringan yang Anda tentukan, menggunakan parameter jaringan pribadi yang Anda tentukan.

Bila Anda memilihID Jaringan Etherealdari 1—4, node Ethereum yang Anda buat bergabung dengan jaringan Ethereum publik. Anda dapat mengabaikan pengaturan jaringan pribadi dan default mereka. Jika Anda memilih untuk bergabung dengan node Ethereum ke jaringan Ethereum publik, pastikan bahwa layanan yang sesuai di jaringan Anda dapat diakses internet.

Mengubah Akun Default dan Frase Mnemonic

Ungkapan mnemonik adalah sekumpulan kata acak yang dapat Anda gunakan untuk menghasilkan dompet Ethereum (yaitu, pasangan kunci pribadi/publik) untuk akun terkait di jaringan apa pun. Ungkapan mnemonik dapat digunakan untuk mengakses Eter untuk akun terkait. Kami membuat mnemonic default yang terkait dengan akun default yang digunakan template Ethereum.

Awas

Gunakan akun default dan frasa mnemonik terkait untuk tujuan pengujian saja. Jangan mengirim Eter nyata menggunakan kumpulan akun default karena siapa pun yang memiliki akses ke frasa mnemonik dapat mengakses atau mencuri Eter dari akun. Sebagai gantinya, tentukan akun khusus untuk tujuan produksi. Ungkapan mnemonik yang terkait dengan akun default adalahoutdoor father modify clever trophy abandon vital feel portion grit evolve twist.

Prasyarat

Saat Anda menyiapkan jaringan Ethereum Anda menggunakan Template Blockchain AWS untuk Ethereum, persyaratan minimum yang tercantum di bawah ini harus dipenuhi. Template membutuhkanAWSkomponen yang tercantum untuk setiap kategori berikut:

Prasyarat untuk Mengakses Sumber Daya Ethereum

Prasyarat Untuk ECS Platform Untuk Docker-Local

key pair Amazon EC2 yang dapat Anda gunakan untuk mengakses instans EC2. Kunci harus ada di Wilayah yang sama dengan klaster ECS dan sumber daya lainnya.

Komponen yang menghadap ke internet, seperti host benteng atau penyeimbang muatan yang menghadap ke internet, dengan alamat internal tempat lalu lintas diizinkan masuk ke Application Load Balancer. Hal ini diperlukan dengan platform ECS karena template menciptakan penyeimbang beban internal untuk alasan keamanan. Hal ini diperlukan dengan platform docker-lokal ketika instans EC2 berada dalam subnet pribadi, yang kami sarankan. Untuk informasi tentang mengonfigurasi host bastion, lihatMembuat Host Bastion.

✔ (dengan subnet pribadi)

Prasyarat IAM

Prasyarat Untuk ECS Platform Untuk Docker-Local

Kepala sekolah IAM (pengguna atau grup) yang memiliki izin untuk bekerja dengan semua layanan terkait.

Profil instans Amazon EC2 dengan izin yang sesuai untuk instans EC2 untuk berinteraksi dengan layanan lain. Untuk informasi selengkapnya, lihat To create an EC2 instance profile.

Peran IAM dengan izin untuk Amazon ECS untuk berinteraksi dengan layanan lain. Untuk informasi selengkapnya, lihat Membuat Peran dan Izin ECS.

Prasyarat Grup Keamanan

Prasyarat Untuk ECS Platform Untuk Docker-Local

Grup keamanan untuk instans EC2, dengan persyaratan sebagai berikut:

  • Aturan keluar yang memungkinkan traffic ke 0.0.0/0 (default).

  • Aturan masuk yang memungkinkan semua lalu lintas dari dirinya sendiri (grup keamanan yang sama).

  • Aturan masuk yang memungkinkan semua lalu lintas dari grup keamanan untuk Application Load Balancer.

  • Aturan masuk yang memungkinkan HTTP (port 80),EthStats(dilayani di port 8080), JSON RPC melalui HTTP (port 8545), dan SSH (port 22) dari sumber eksternal tepercaya, seperti IP CIDR komputer klien Anda.

Grup keamanan untuk Application Load Balancer, dengan persyaratan sebagai berikut:

  • Aturan masuk yang memungkinkan semua lalu lintas dari dirinya sendiri (grup keamanan yang sama).

  • Aturan masuk yang memungkinkan semua lalu lintas dari grup keamanan untuk instans EC2.

  • Aturan keluar yang memungkinkan semua lalu lintas hanya ke grup keamanan untuk instans EC2. Untuk informasi selengkapnya, lihat Buat Grup Keamanan.

  • Jika mengaitkan grup keamanan yang sama ini dengan host benteng, aturan masuk yang memungkinkan lalu lintas SSH (port 22) dari sumber tepercaya.

  • Jika host benteng atau komponen yang menghadap ke internet lainnya berada dalam grup keamanan yang berbeda, aturan masuk yang memungkinkan lalu lintas dari komponen tersebut.

Prasyarat VPC

Prasyarat Untuk ECS Platform Untuk Docker-Local

Alamat IP Elastis, yang digunakan untuk mengakses layanan Ethereum.

Subnet untuk menjalankan instans EC2. Kami sangat merekomendasikan subnet pribadi.

Dua subnet yang dapat diakses publik. Setiap subnet harus berada di Availability Zone yang berbeda satu sama lain, dengan satu di Availability Zone yang sama dengan subnet untuk instans EC2.

Contoh Izin IAM untuk Profil Instans EC2 dan Peran ECS

Anda menentukan profil instans EC2 ARN sebagai salah satu parameter ketika Anda menggunakan template. Jika Anda menggunakan platform kontainer ECS, Anda juga menentukan ARN peran ECS. Kebijakan izin yang dilampirkan pada peran ini memungkinkan sumber daya dan instans AWS dalam klaster Anda untuk berinteraksi dengan sumber daya AWS lainnya. Untuk informasi lebih lanjut, lihat Peran IAM dalam Panduan Pengguna IAM. Gunakan pernyataan kebijakan dan prosedur di bawah ini sebagai titik awal untuk membuat izin.

Contoh Kebijakan Izin untuk Profil Instans EC2

Kebijakan izin berikut menunjukkan tindakan yang diizinkan untuk profil instans EC2 saat Anda memilih platform kontainer ECS. Pernyataan kebijakan yang sama dapat digunakan dalam platform kontainer docker-lokal, denganecskunci konteks dihapus untuk membatasi akses.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:Poll", "ecs:RegisterContainerInstance", "ecs:StartTelemetrySession", "ecs:Submit*", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem" ], "Resource": "*" } ] }

Membuat Peran dan Izin ECS

Untuk izin yang melekat pada peran ECS, kami sarankan Anda mulai denganAmazonec2ContainerServicePerankebijakan izin. Gunakan prosedur berikut untuk membuat peran dan melampirkan kebijakan izin ini. Gunakan konsol IAM untuk melihat yang palingup-to-dateizin dalam kebijakan ini.

Membuat peran IAM untuk Amazon ECS

  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).

  3. Di bawah Pilih jenis entitas tepercaya, pilih Layanan AWS.

  4. Untuk Choose the service that will use this role (Pilih layanan yang akan menggunakan peran ini), pilih Elastic Container Service.

  5. Di bawahPilih kasus penggunaan Anda, pilihLayanan Kontainer Elastic,Berikutnya:Izin.

  6. UntukKebijakan izin, meninggalkan kebijakan default (Amazonec2ContainerServicePeran) dipilih, dan pilihBerikutnya:Ulasan.

  7. UntukNama peran, masukkan nilai yang membantu Anda mengidentifikasi peran, sepertiECSRoleForEthereal. UntukDeskripsi peran, masukkan ringkasan singkat. Perhatikan nama peran untuk nanti.

  8. Pilih Create role (Buat peran).

  9. Pilih peran yang baru Anda buat dari daftar. Jika akun Anda memiliki banyak peran, Anda dapat mencari nama peran.

  10. SalinARN Perannilai dan menyimpannya sehingga Anda dapat menyalinnya lagi. Anda perlu ARN ini ketika Anda membuat jaringan Ethereum.

Menghubungkan ke Sumber Daya Ethereum

Setelah tumpukan akar yang Anda buat dengan tampilan templateCREATE_COMPLETE, Anda dapat terhubung ke sumber daya Ethereum menggunakanAWS CloudFormationkonsol. Cara Anda terhubung tergantung pada platform kontainer yang Anda pilih, ECS atau docker-local:

  • ECS—TheOutputtab dari tumpukan akar menyediakan link ke layanan yang berjalan pada Application Load Balancer. URL ini tidak dapat diakses secara langsung karena alasan keamanan. Untuk terhubung, Anda dapat mengatur dan menggunakanhost bastionuntuk koneksi proxy kepada mereka. Untuk informasi selengkapnya, lihat Koneksi Proxy Menggunakan Host Bastion di bawah.

  • docker-lokal—Anda terhubung menggunakan alamat IP instans EC2 hosting layanan Ethereum seperti yang tercantum di bawah ini. Gunakan konsol EC2 untuk menemukanAlamat EC2-IPdari contoh bahwa template dibuat.

    • EthStats—Gunakan http://Alamat EC2-IP

    • EthExplorer—Gunakan http://Alamat EC2-IP:8080

    • EthJsonRpc—Gunakan http://Alamat EC2-IP:8545

    Jika Anda menentukan subnet publik untukID Subnet Jaringan(Daftar Subnet VPC untuk digunakandalam template), Anda dapat terhubung secara langsung. Klien Anda harus menjadi sumber trafik masuk yang tepercaya untuk SSH (port 22), serta port yang terdaftar. Hal ini ditentukan olehGrup Keamanan EC2yang Anda tentukan menggunakan Template Blockchain AWS untuk Ethereum.

    Jika Anda menentukan subnet pribadi, Anda dapat mengatur dan menggunakanhost bastionuntuk koneksi proxy ke alamat ini. Untuk informasi selengkapnya, lihat Koneksi Proxy Menggunakan Host Bastion di bawah.

Koneksi Proxy Menggunakan Host Bastion

Dengan beberapa konfigurasi, layanan Ethereum mungkin tidak tersedia untuk umum. Dalam kasus tersebut, Anda dapat terhubung ke sumber daya Ethereal melaluihost bastion. Untuk informasi selengkapnya tentang host bastion, lihatLinux Bastion Host ArsitekturdiPanduan Quick Start.

Host benteng adalah instance EC2. Pastikan bahwa persyaratan berikut terpenuhi:

  • Instans EC2 untuk host bastion berada dalam subnet publik dengan Auto-assign Public IP diaktifkan dan yang memiliki gateway internet.

  • Host benteng memiliki key pair yang memungkinkan koneksi ssh.

  • Host benteng dikaitkan dengan grup keamanan yang memungkinkan lalu lintas SSH masuk dari klien yang terhubung.

  • Grup keamanan yang ditugaskan ke host Ethereum (misalnya, Application Load Balancer jika ECS adalah platform kontainer, atau instans host EC2 jika docker-local adalah platform kontainer) memungkinkan lalu lintas masuk pada semua port dari sumber dalam VPC.

Dengan pengaturan host benteng, pastikan bahwa klien yang terhubung menggunakan host bastion sebagai proxy. Contoh berikut ini menunjukkan pengaturan koneksi proxy menggunakan Mac OS. GantiBastionIPdengan alamat IP instans EC2 host benteng danMySshKunci.pemdengan file key pair yang Anda salin ke host benteng.

Di baris perintah, ketik hal berikut:

ssh -i mySshKey.pem ec2-user@BastionIP -D 9001

Ini mengatur port forwarding untuk port 9001 pada mesin lokal ke host benteng.

Selanjutnya, konfigurasikan browser atau sistem Anda untuk menggunakan proxy SOCKSlocalhost:9001. Misalnya, menggunakan Mac OS, pilihPreferensi Sistem,Jaringan,Lanjutan, pilihProksi SOCKS, dan tipelocalhost:9001.

MenggunakanFoxyProxyStandar dengan Chrome, pilihAlat Lebih,Ekstensi. Di bawahFoxyProxyStandard, pilihRincian,Opsi ekstensi,Tambahkan Proksi Baru. PilihKonfigurasi Proksi Manual. UntukAlamat Host atau IPtipelocalhostdan untukPelabuhantipe9001. PilihProksi SOCKS?,Simpan.

Anda sekarang dapat terhubung ke alamat host Ethereum yang tercantum dalam output template.