Hyperledger Fabric 2.0: Blockchain Generasi Berikutnya

Hyperledger Fabric telah ada untuk perusahaan selama beberapa waktu sekarang. Pada kenyataannya, ia menawarkan salah satu platform kreatif untuk kasus penggunaan blockchain. Namun teknologi yang tidak berkembang seiring waktu menjadi usang dengan sangat cepat. Itulah mengapa Hyperledger menghadirkan rilis baru Hyperledger Fabric 2.0.

Pada dasarnya, sebelumnya perusahaan menawarkan Fabric versi 1.4. Tapi sekarang kami memiliki blockchain generasi berikutnya di antara kami. Jika Anda lebih dari senang dengan rilis baru seperti kami, lihat panduan ini. Karena hari ini kita akan membahas tentang rilis baru Hyperledger Fabric 2.0 dan tentang semua fitur yang diperkenalkannya.

Namun sebelum kita mulai, kami akan menelusuri kembali apa itu platform Hyperledger Fabric dan fitur apa yang awalnya ditawarkan.

Jadi ayo mulai!

Hyperledger Fabric 2.0.0 Memperbarui

Apa itu Hyperledger Fabric?

Hyperledger Fabric adalah platform buku besar terdistribusi untuk solusi tingkat perusahaan yang hadir dengan keserbagunaan, modularitas, dan kinerja. Jadi, seperti yang Anda ketahui, ada juga platform tanpa izin. Tapi Fabric berbeda dari itu.

Itu tidak memungkinkan sembarang orang untuk masuk ke platform. Melainkan menawarkan akses yang diizinkan ke pengguna yang memiliki otoritas dalam sistem. Lebih dari itu, ia juga menawarkan privasi data dan kontrak pintar untuk kinerja yang dapat diskalakan dan aman.

Itulah mengapa industri apa pun dapat menggunakan Hyperledger Fabric untuk segala jenis solusi. Peluangnya tidak terbatas, dan bisnis akan selalu mendapatkan hasil terbaik dari platform buku besar terdistribusi.

Meskipun pengguna dalam sistem jaringan akan bekerja sama, tetapi perusahaan perlu menjaga privasi untuk interaksi tertentu. Itulah yang menjadi dasar industri. Misalnya, mungkin pembeli menjual produk ke vendor yang berbeda tetapi pada kisaran harga yang berbeda.

Tetapi pembeli perlu menjaga privasi tentang itu. Dan di sinilah Hyperledger Fabric dapat membantu.

Pada kenyataannya, Anda dapat dengan mudah membuat saluran terpisah dalam transaksi untuk penjual terpisah. Selain itu, Anda dapat menggunakan opsi data pribadi untuk menyimpan informasi pada tingkat diam-diam.

Mengapa Hyperledger Fabric?

Pada kenyataannya, Hyperledger Fabric berkembang dari waktu ke waktu dengan bantuan komunitas sumber terbuka, dengan fokus utama pada kasus penggunaan tingkat perusahaan. Lebih dari itu, sekarang ia menawarkan banyak fitur yang sering diminta oleh perusahaan. Jadi, mari kita lihat apa ini –

  • Arsitektur modular dan berizin.
  • Solusi dukungan yang sangat fleksibel untuk konsensus di antara semua organisasi yang bertransaksi.
  • Kontrak cerdas yang fleksibel dan terbuka yang dapat mendukung berbagai model dan solusi data seperti data terstruktur, model akun, data tidak terstruktur, model UTXO, dll..
  • Opsi protokol konsensus yang dapat dicolokkan untuk memesan transaksi dan pemblokiran.
  • Privasi data penuh untuk isolasi transaksi atau hanya berbagi informasi yang perlu diketahui menggunakan model data pribadi.
  • Dukungan kontrak pintar untuk berbagai bahasa pemrograman seperti JavaScript, Java, Go, dll.
  • Pembuatan versi dan tata kelola untuk kontrak pintar.
  • Dukungan untuk Soliditas.
  • Dukungan untuk Mesin Virtual Ethereum.
  • Pembaruan berkelanjutan, operasi perusahaan, dukungan versi asimetris.
  • Data yang dapat dikuadratkan seperti kueri rentang, kueri dengan kunci, kueri JSON on-chain, dan banyak lagi.

Hyperledger Fabric 2.0: Yang Baru?

Rilis pertama Hyperledger Fabric telah kembali di v1.0. Dan sekarang, kami memiliki rilis utama kedua dari Hyperledger Fabric 2.0. Kali ini hadir dengan banyak fitur baru dan lebih baik untuk pengguna dan operator di platform.

Rilis Hyperledger Fabric 2.0 mencakup pola privasi dan mendukung aplikasi baru, fitur baru untuk node operasi, sistem tata kelola yang disempurnakan untuk kontrak pintar, dan banyak lagi.

Namun, mereka tidak akan memaksa Anda untuk meningkatkan ke Hyperledger Fabric 2.0 terbaru jika Anda belum siap. Jadi, Anda memiliki opsi untuk meningkatkan saat Anda siap, atau perusahaan Anda siap untuk transisi.

Dan itu adalah nilai tambah yang sangat besar untuk Hyperledger Fabric 2.0.

Mari kita lihat beberapa sorotan dari rilis baru –

Kontrak Cerdas Tata Kelola Terdesentralisasi

Hyperledger Fabric 2.0 kini hadir dengan tata kelola yang terdesentralisasi, terutama untuk kontrak pintar. Ini juga menawarkan proses baru di mana Anda dapat menginstal kode rantai pada rekan-rekan dan memulainya di saluran. Dengan demikian, manajemen siklus hidup kode rantai baru sekarang memungkinkan banyak organisasi mencapai kesepakatan berdasarkan parameter kode rantai.

Jadi, pada dasarnya, Anda akan menggunakan kebijakan dukungan kode rantai untuk berinteraksi dengan buku besar. Mari kita lihat peningkatan lain yang ditawarkannya dari proses siklus kode rantai sebelumnya –

Persetujuan untuk The Parameters of Chaincode

Pada dasarnya, dalam rilis sebelumnya, hanya satu organisasi di chaincode yang dapat mengatur parameter bahkan untuk anggota saluran lainnya juga. Tetapi anggota lain dapat menolak untuk mendapatkan kode rantai dan tidak ikut serta dalam proses transaksi. Oleh karena itu, gunakanlah itu.

Namun, Hyperledger Fabric 2.0 yang baru menawarkan rute yang lebih fleksibel untuk kode rantai. Sekarang ini mendukung model kode rantai terpusat dan model kode rantai terdesentralisasi. Dalam versi desentralisasi, perusahaan harus mencapai kesepakatan tentang kode rantai menjadi dapat menjadi aktif di saluran.

Peningkatan Kode Rantai Hati-hati

Sebelumnya, hanya satu organisasi yang dapat meningkatkan transaksi. Namun, hal itu akan membuat anggota saluran lainnya berisiko jika mereka tidak memasang kode rantai. Dengan demikian, Hyperledger Fabric versi 2.0 memungkinkan kode rantai untuk meningkatkan hanya setelah cukup anggota menyetujui peningkatan tanpa masalah apa pun.

Pengumpulan Data Pribadi dan Pembaruan Kebijakan Pengesahan Mudah

Hyperledger Fabric versi 2.0 menawarkan kebijakan dukungan baru di mana Anda dapat meningkatkan pengumpulan data pribadi atau konfigurasi kebijakan tanpa menginstal ulang kode rantai. Lebih dari itu, pengguna dapat memanfaatkan kebijakan dukungan karena memerlukan persetujuan dari sejumlah besar pengguna di saluran tersebut.

Pada kenyataannya, kebijakan akan diperbarui setiap kali anggota masuk ke buku besar atau meninggalkan buku besar.

Paket Chaincode yang Dapat Diinspeksi

Sekarang Hyperledger Fabric versi 2.0 hadir dengan file tar yang mudah dibaca untuk kode rantai. Ini akan membantu Anda memeriksa file kode rantai dengan mudah dan menentukan penginstalan di organisasi lain.

Beberapa Kode Rantai Di Saluran

Di versi sebelumnya, siklus proses yang digunakan untuk menentukan setiap kode rantai menggunakan versi dan nama yang ditentukan selama penginstalan paket. Tetapi sekarang Anda hanya dapat menggunakan satu paket kode rantai dan menerapkannya lebih dari sekali dengan banyak nama setiap saat di jaringan. Selain itu, Anda dapat melakukannya di saluran yang berbeda atau di saluran yang sama.

Paket Kode Rantai Di Seluruh Anggota Saluran

Di Hyperledger Fabric versi 2.0, pengguna dapat memperluas kode rantai untuk kasus penggunaan mereka sendiri. Misalnya, organisasi dapat memperluas kode rantai untuk validasi dalam perusahaan mereka sendiri. Tetapi ada sejumlah persyaratan minimum dari organisasi. Jadi, ketika dukungan yang cukup dimungkinkan, transaksi akan divalidasi dan mendapat tempat di buku besar.

Dengan demikian, ini akan membantu perusahaan Anda untuk secara otomatis memperbaiki masalah apa pun di waktu Anda sendiri tanpa mengorbankan seluruh jaringan.

Menggunakan Siklus Hidup Kode Rantai Baru

Hyperledger Fabric versi 2.0 sekarang menawarkan siklus kode rantai yang benar-benar baru. Namun, jika Anda belum siap untuk perubahan baru, Anda dapat terus menggunakan siklus hidup sebelumnya dengan Hyperledger Fabric versi 2.0.

Pada kenyataannya, siklus hidup baru hanya akan menjadi aktif saat Anda memperbarui kapabilitas ke v2.0.

Pola Aplikasi Chaincode Baru

Pada dasarnya, peta jalan Hyperledger Fabric 2.0 memungkinkan Anda menggunakan metode konsensus terdesentralisasi yang sama untuk aplikasi kode rantai Anda sendiri. Ini akan memastikan bahwa organisasi memiliki persetujuan untuk transaksi data sebelum berkomitmen pada buku besar.

Pemeriksaan Otomatis

Sebuah organisasi dapat menambahkan pemeriksaan otomatis ke kode rantai untuk memvalidasi lebih banyak informasi sebelum mendukung transaksi pada buku besar.

Perjanjian Terdesentralisasi

Bagian terbaiknya adalah peta jalan Hyperledger Fabric 2.0 memungkinkan Anda membuat model keputusan manusia pada kode rantai untuk menjangkau lebih dari satu transaksi. Namun, Anda membutuhkan pengguna lain dari organisasi untuk berinteraksi dengan syarat dan ketentuan perjanjian.

Kemudian, akhirnya, proposal kode rantai dapat memverifikasi bahwa semua kondisi pengguna terpenuhi dan menyelesaikan transaksi berdasarkan itu.

Kemampuan

Ada beberapa kemampuan tertentu dalam peta jalan Hyperledger Fabric 2.0. Mari kita lihat apa ini –

Aplikasi V2_0: Ini memulai siklus hidup kode rantai baru untuk operator, seperti yang disebutkan di Chaincode.

Saluran V2_0: Pada dasarnya, ini tidak memiliki perubahan, tetapi Anda dapat menggunakannya untuk menjaga konsistensi dengan tingkat kemampuan dan aplikasi yang dipesan.

Pemesan V2_0: Yang ini mengontrol UseChannelCreationPolicyAsAdmins, dan mengubah cara biasanya transaksi saluran divalidasi. Jika Anda menggabungkannya dengan opsi -baseProfile, Anda dapat mengubah nilai yang diwarisi sebelumnya di sistem pemesan.

Tetapi ketika Anda memperbarui tingkat kemampuan Anda, selalu ingat untuk memperbarui binari rekan juga. Selain itu, perbarui biner pemesan sebelum Anda memperbarui kapabilitas Pemesan dan Saluran.

Peningkatan Data Pribadi

Peta jalan Hyperledger Fabric 2.0 juga hadir dengan pola baru untuk berbagi semua data pribadi Anda tanpa mengumpulkan semuanya sekaligus dan kemudian menggabungkan anggota saluran berdasarkan itu. Lebih khusus lagi, tanpa membagikan informasi pribadi dengan sekumpulan pengguna, Anda dapat membagikannya dengan satu organisasi saja.

Namun sebelum kita membahas lebih dalam tentang dokumentasi Hyperledger Fabric 2.0, mari kita lihat apa yang sebenarnya dirujuk oleh data pribadi di Hyperledger.

Apa Itu Data Pribadi?

Dalam banyak kasus, perusahaan mungkin perlu merahasiakan informasi tertentu dalam saluran dari perusahaan lain. Oleh karena itu, mereka harus membuat saluran baru dengan hanya organisasi yang dapat melihat informasi secara terpisah. Tetapi itu berarti itu juga akan membutuhkan administrasi tambahan, kebijakan, akses keanggotaan, dan banyak lagi.

Terlebih lagi, ini juga tidak memungkinkan peserta saluran untuk menggunakan sistem dalam kasus penggunaan apa pun di mana semua pihak dapat melihat sebagian informasi sementara yang lain tetap tersembunyi.

Namun, sekarang peta jalan Hyperledger Fabric 2.0 akan membantu Anda membuat pengumpulan data pribadi. Di sini Anda dapat menentukan subset perusahaan yang dapat melihat data pribadi tanpa membuat saluran baru untuk setiap kasus.

Apa Itu Pengumpulan Data Pribadi?

Pada dasarnya, koleksi adalah kombinasi dari dua elemen berbeda –

Informasi aktual yang disiarkan di antara rekan-rekan menggunakan protokol gosip. Tetapi di sini, hanya perusahaan yang berwenang untuk melihatnya yang dapat melihat ini. Pada dasarnya, data ini ada di database negara pribadi di dalam buku besar rekan-rekan organisasi itu.

Terlebih lagi, tidak ada layanan pemesanan di sini, dan mereka tidak dapat melihat informasi pribadi. Bagaimanapun, karena protokol gosip menyiarkan informasi dari satu rekan ke rekan lainnya, Anda perlu mengatur node Jangkar di saluran.

Ini juga berisi hash dari data pribadi yang dipesan, didukung, dan ditulis di buku besar semua rekan di saluran. Pada dasarnya, ini berfungsi sebagai bukti validasi transaksi di channel tersebut. Anda juga dapat menggunakannya untuk tujuan audit.

Menggunakan Koleksi

Dalam Channel A

Anda perlu menggunakan saluran jika Anda ingin merahasiakan seluruh transaksi dari sekelompok organisasi di dalam saluran tersebut.

Saluran Terpisah

Menurut dokumentasi Hyperledger Fabric 2.0, Anda dapat menggunakan koleksi saat Anda hanya perlu menyimpan sebagian rahasia buku besar dari sekumpulan perusahaan.

Pada kenyataannya, beberapa organisasi akan memiliki akses penuh ke buku besar, dan yang lain mungkin hanya melihat apa yang diizinkan. Jika Anda juga ingin menyembunyikan data transaksional dari layanan pemesanan, Anda dapat menggunakan pengumpulan data pribadi untuk kerahasiaan.

Sebuah contoh

Mari kita lihat contoh dari dokumentasi Hyperledger Fabric 2.0 untuk memahami situasinya dengan lebih baik.

Misalkan, dalam sebuah platform perdagangan, ada lima perusahaan dalam satu saluran.

  • Petani yang menjual barang
  • Distributor yang memindahkan barang tersebut
  • Pengirim yang memindahkan barang antara dua pihak
  • Pedagang grosir yang membeli barang dari distributor
  • Pengecer yang membeli barang dari grosir dan pengirim barang

Pada dasarnya, distributor dapat mengenakan biaya yang berbeda dalam setiap kasus. Jadi, dia mungkin ingin merahasiakan transaksi dengan pengirim dan Petani karena dia mungkin memiliki kesepakatan lain dengan pengecer dan grosir..

Selain itu, distributor tidak mengenakan biaya lebih sedikit kepada pedagang grosir daripada ke pengecer. Karena itu, dia mungkin ingin merahasiakannya dari pengecer.

Di sisi lain, pedagang grosir juga dapat memiliki hubungan pribadi dengan pengirim dan pengecer. Tetapi jika Anda ingin membuat saluran terpisah untuk setiap informasi pribadi, maka sistemnya akan menjadi jauh lebih rumit.

Daripada melakukan itu, Anda dapat memiliki kumpulan data pribadi atau PDC yang berbeda untuk masing-masing anggota.

Seperti,

Pengumpulan-Data-Pribadi-1: Pengirim, Petani, dan Distributor

Pengumpulan-Data-Pribadi-2: Pengirim, Pengecer, dan Grosir

Pengumpulan-Data-Pribadi-3: Grosir dan Distributor

Menurut dokumentasi Hyperledger Fabric 2.0, semua rekan distributor akan memiliki database pribadi yang berisi data pribadi untuk hubungan Pengirim, Petani, dan Distributor dan hubungan Pedagang grosir, dan Distributor.

Penyempurnaan di Pola Data

Menurut dokumentasi Hyperledger Fabric 2.0, ada beberapa penyempurnaan yang sebenarnya memungkinkan pola data privat baru untuk bekerja. Ini adalah –

Berbagi dan Memverifikasi Data Pribadi

Pihak penerima dapat menggunakan API GetPrivateDataHash () untuk memverifikasi apakah data pribadi yang dibagikan dengan mereka adalah asli atau tidak dalam dua skenario –

  • Saat Anda berbagi informasi pribadi dengan pengguna saluran yang bukan anggota koleksi.
  • Saat Anda membagikannya dengan koleksi lain yang disertakan dengan satu atau beberapa anggota.

Kebijakan Pengesahan Tingkat Koleksi

Anda sekarang dapat menentukan koleksi data pribadi dengan bantuan kebijakan dukungan yang dapat mengganti kebijakan tingkat kode rantai lainnya untuk kunci di antara koleksi. Pada dasarnya, Anda dapat menggunakannya untuk membatasi perusahaan lain untuk menulis pada koleksi dan apa yang dapat mengaktifkan siklus hidup kode rantai dan pola aplikasi.

Misalnya, Anda mungkin memerlukan dukungan di mana jika sebagian besar perusahaan setuju, Anda dapat memulai transaksi, tetapi dalam kasus, Anda mungkin memerlukan persetujuan dari organisasi tertentu untuk membuatnya berhasil..

Koleksi Implisit Per Organisasi

Menurut dokumentasi Hyperledger Fabric 2.0, dalam hal apa pun, jika Anda ingin menggunakan pola data pribadi per organisasi daripada Anda dapat menerapkan kode rantai tanpa menentukan koleksi di versi baru. Ini adalah salah satu fitur utama Hyperledger Fabric 2.0.

Peluncur Chaincode Eksternal

Itu peluncur kode rantai eksternal adalah salah satu fitur Hyperledger Fabric 2.0 yang mengagumkan. Terutama, ini akan memberdayakan operator karena sekarang mereka dapat memilih untuk meluncurkan kode rantai teknologi pilihan mereka. Lebih dari itu, Anda tidak perlu menggunakan peluncur atau pembuat eksternal untuk itu, dan itu akan menjalankan kode rantai menggunakan API Docker.

Pada dasarnya, rekan sekarang tidak perlu mengakses daemon Docker untuk menjalankan atau membuat kode rantai. Dalam lingkungan produksi, hal ini sama sekali tidak diinginkan, dan itulah mengapa rekan sekarang dapat menghilangkan ketergantungan pada daemon Docker.

Sekarang Anda tidak perlu menjalankan kode rantai di kontainer Docker, Anda dapat menuntut lingkungan pilihan Anda sendiri untuk menjalankan kode rantai.

Selain itu, operator dapat menawarkan executable builder eksternal untuk mengganti cara pengguna meluncurkan atau membuat kode rantai.

Sebelumnya, rekan meluncurkan kode rantai, dan kemudian dihubungkan kembali ke mereka. Tetapi sekarang Anda dapat menjalankannya sebagai layanan eksternal.

Peningkatan Kinerja di CouchDB

Sebelumnya, saat Anda menggunakan database status CouchDB, Anda akan menghadapi penundaan pembacaan dalam validasi dan endorsement. Jadi, sulit sekali mendapatkan performa sehalus mungkin. Tetapi sekarang, dengan fitur Hyperledger Fabric 2.0, Anda mendapatkan cache peer baru yang akan menggantikan pencarian yang lama dengan keluaran yang cepat. Lebih dari itu, Anda dapat mengkonfigurasinya dengan properti core.yaml cacheSize.

Gambar Docker Berbasis Alpine

Di Hyperledger Fabric 2.0 yang baru, ini akan menggunakan Alpine Linux untuk image Docker. Alpine Linux adalah distribusi Linux yang lebih aman dan ringan yang dapat dengan mudah meningkatkan kinerja jaringan.

Pada kenyataannya, ini berarti image Docker akan berukuran lebih kecil, jadi akan membutuhkan lebih sedikit waktu untuk mendownload atau untuk memulai. Lebih dari itu, ini tidak akan memakan terlalu banyak ruang mulai sekarang juga.

Perusahaan merancang Alpine Linux dari awal, dengan mengutamakan keamanan, dan fitur minimalis dari distribusi ini menghilangkan semua kerentanan..

Jaringan Uji Sampel

Sekarang Anda akan memiliki jaringan uji sampel baru di repositori sampel kain. Ini adalah salah satu fitur Hyperledger Fabric 2.0 yang keren. Pada kenyataannya, jaringan pengujian ini modular dan mudah digunakan. Jadi, Anda tidak akan memiliki masalah dalam menguji kontrak pintar atau aplikasi Anda sebelum meluncurkan solusi.

Selain itu, Anda juga dapat menyebarkan jaringan dengan Otoritas Sertifikat bersama dengan kriptogen.

Cara Meningkatkan ke Fabric v2.0

Setiap kali rilis besar terjadi, itu membawa banyak masalah pertimbangan peningkatan. Dalam banyak kasus, Anda mungkin harus menginstal versi baru dari awal, tetapi itu dapat menyebabkan downtime. Tapi, salah satu fitur Hyperledger Fabric 2.0 adalah, jika Anda sudah menggunakan versi 1.4, Anda dapat langsung mengupgrade ke versi 2.0 tanpa downtime..

Mereka juga mengerjakan ulang dan memperluas dokumen peningkatan untuk Anda periksa dan juga memiliki rumah mandiri di mereka dokumentasi. Ingin meningkatkan? Kemudian periksa dokumentasi itu.

Pada dasarnya, meningkatkan ke rilis terbaru adalah proses empat langkah –

  • Pertama, Anda harus membuat cadangan buku besar dan MSP Anda.
  • Kemudian mulailah meningkatkan secara bergilir biner pemesan ke versi terbaru.
  • Setelah itu, ikuti proses pembaruan yang sama untuk binari peer juga.
  • Terakhir, Anda perlu memperbarui saluran aplikasi dan saluran sistem pemesan ke kapabilitas terbarunya saat tersedia. Terlebih lagi, tidak semua rilis akan memiliki kemampuan yang meningkat, terkadang ada peningkatan besar yang terkadang tidak.

Tutorial Mengupgrade

Sebelum Anda meningkatkan proses apa pun, Anda harus mempertimbangkan untuk memeriksa tutorial mereka untuk itu. Anda juga bisa melihat tutorial Fabric kami. Bagaimanapun, kami memberikan versi singkatnya di sini –

  • Sebelum Anda meningkatkan kemampuan Anda, Anda harus meningkatkan semua komponen Anda terlebih dahulu. Pastikan itu adalah versi terbaru.
  • Selain itu, pastikan untuk memperbarui semua node ke versi terbaru sebelum memperbarui seluruh saluran.
  • Anda harus menambahkan kebijakan dukungan untuk perusahaan tertentu untuk memulai siklus kode rantai baru dalam sistem.

Fabric sekarang mempertimbangkan peningkatan node dan peningkatan kapabilitas sebagai standar.

catatan: Sebaiknya Anda juga meningkatkan SDK ke versi terbaru. Meskipun SDK Anda harus mampu menangani rilis yang setara dari Hyperledger Fabric dan versi yang lebih rendah, akan lebih baik jika Anda memperbaruinya karena Anda dapat menggunakan fitur Fabric terbaru secara efisien..

Jika Anda masih bingung tentang proses peningkatan, lihat dokumentasi mereka di atasnya.

Kesimpulan

Rilis terbaru dari versi 2.0 merupakan tonggak sejarah. Pada kenyataannya, Fabric 2.0 dianggap sebagai teknologi blockchain generasi berikutnya. Terlebih lagi, ada begitu banyak fitur Hyperledger Fabric 2.0 yang menawarkan banyak peluang.

Sampai sekarang, kami masih belum tahu bagaimana kinerja teknologi ini atau apakah versi baru akhirnya dapat menghilangkan aspek negatif dari blockchain. Meski begitu, tonggak baru untuk keluarga dan komunitas Hyperledger memang membawa banyak peningkatan baru, dan kami hanya bisa berharap yang terbaik..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map