Web3j ve Ganache ile Ethereum Dünyasına Giriş - 1

Nefis blockhain tariflerine hoşgeldiniz. Malzemelerimiz başta söylediğim gibi ;
 
            * Yarım kilo web3j
            * Dondurulmuş bir paket Ganache
            * Bir çay kaşığı Tuz
            * Bir tatlı kaşığı Ethereum

Evet zaman zaman bende oluşan hissiyat bu. Uygulamak istediğim her yeni teknoloji de Google dan yemek araştırıp mutfakta bir şeyler çabalayan hanımlar gibi hissediyorum kendimi. Blockchain dünyamıza girdi girdi gireli hepimizin aklında keşke bir uygulamamda bu teknolojiyi de uygulasam diye aklınızdan geçiyordur. Öyleyse bu yazı bir "personal blockchain" yazısı buyrun okumaya.

Ethereum kripto piyasalarında trade ettiğimiz bir currency olmak ile beraber aslında bir blockchain altyapısı ve kendi amaçlarınız için kullanabiliyorsunuz. Bu altyapıyı kendi lokal bilgisayarınızda kullanabilmeniz için Ganache adı verilen platformu kullanacağız. 

Truffle Suite isimli firmanın sunduğu bu altyapı hesap,kontrat işlemlerini  bir endpoint üzerinden gönderebildiğimiz için oldukça pratik.






public addressler , private keyler , oluşan blocklar, transactionlar ve deploy olmuş kontratlar hepsi tek ekrandan gözlemlenebiliniyor.

Sistem kendini RPC Server dediğimiz bir endpointden serve ediyor. Kurulumumuzu yaptıktan sonra web3j ile küçük bir transaction örneği yapalım.

Bu arada herşeyin arkasına "j" ekleyerek ahada Java da yapar bu işi hastalığı bu kütüphanede baş göstermiş. 




Bir maven projesi açıp core paketi indirmeniz şimdilik yeterli ;




Web3j web3j = Web3j.build(new HttpService("http://127.0.0.1:7545/"));

TransactionManager transactionManager = new RawTransactionManager(
web3j,
Credentials.create(PRIVATE_KEY)
);

Transfer transfer = new Transfer(web3j, transactionManager);

TransactionReceipt transactionReceipt = transfer.sendFunds(
RECIPIENT,
BigDecimal.ONE,
Convert.Unit.ETHER,
GAS_PRICE,
GAS_LIMIT
).send();

System.out.print("Transaction = " + transactionReceipt.getTransactionHash());


Kod bloğunu özetleyelim. Endpointe bağlanıyoruz. TransactionManager objesi ile işlem yapacağımız hesaba private key i ile erişiyoruz. (Bunun için Ganache da o hesabın üzerinde iken "show keys" diyebilirsiniz). Transfer objesiyle gönderim "sendFunds" methodunu tetikliyoruz. Bu tetikleme içerisine GAS dediğimiz ekleme işlem onaylama bedelidir. GAS ücretinin düşük tutulması süreyi uzatır çünkü madencilik için GAS ücreti fazla tutulan işlem önceliklidir. 


İşlemi başarılı bir şekilde yaptığınızda oluşan block ve transaction kaydını Ganache da gözlemleyebilirsiniz.










Yorumlar

Bu blogdaki popüler yayınlar

IONIC BAŞLANGIÇ

Cannot resolve the collation conflict between “Turkish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation

Golang working with interfaces and functions -3