Marmara Blokzincirine Başlangıç

Aşağıdaki kılavuz, farklı işletim sistemleri için terminal/komut satırında kullanılmak üzere hazırlanmıştır. Örnek çıktılar gösterim amaçlı verilmiştir.

Marmara Zincirini Kaynak Kodundan Kurma

Kaynak Kodundan Zinciri Kurma

Marmara Kredi Döngüleri blokzinciri kaynak kodundan kurulabilir. Bu zorunlu bir işlem değildir (önceden derlenmiş hali de kullanılabilir), ancak kaynaktan derleme yöntemi kişinin en son yapılan yazılım yamalarına ve yükseltmelerine anında güncelleme yapmasına izin vermesi nedeniyle en iyi bir uygulama olarak kabul edilmektedir.

Sistem gereksinimleri

Linux:
Ubuntu için 16.04 veya 18.04 + sürümleri
64-bit İşlemci
Minimum 2 CPU
Minimum 4GB RAM (8GB+ önerilir)
MacOS:
OSX (versiyon > 10.11)
Minimum 4GB RAM (8GB+ önerilir)
Windows:
Linux makine veya Ubuntu Linux tabanlı Sanal Makine

Bağımlılıkların yüklenmesi

* Linux:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget curl bsdmainutils automake cmake clang ntp ntpdate nano -y

* MacOS:

Aşağıdaki komutu terminalde çalıştırınız
xcode-select –install
brew paketinin yüklü olduğundan emin olun
usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
Aşağıdaki her biri komutu tek tek terminalde çalıştırınız
brew update
brew upgrade
brew tap discoteq/discoteq; brew install flock
brew install autoconf autogen automake
brew install gcc@8
brew install binutils
brew install protobuf
brew install coreutils
brew install wget

* Windows:

sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget libcurl4-gnutls-dev bsdmainutils automake curl libsodium-dev cmake mingw-w64
Rust yükleyiniz
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup target add x86_64-pc-windows-gnu
Derleyiciyi POSIX thread modelini kullanacak şekilde yapılandırma yapınız
sudo update-alternatives –config x86_64-w64-mingw32-gcc
Yukarıdaki komutu çalıştırdıktan sonra, aşağıda belirtildiği gibi POSIX seçeneğini seçin:

Selection    Path                                   Priority   Status
————————————————————
0            /usr/bin/x86_64-w64-mingw32-gcc-win32   60        auto mode
1            /usr/bin/x86_64-w64-mingw32-gcc-posix   30        manual mode
* 2            /usr/bin/x86_64-w64-mingw32-gcc-win32   60        manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
Aşağıdaki komutu çalıştırınız:
sudo update-alternatives –config x86_64-w64-mingw32-g++

Yukarıdaki komutu yürüttükten sonra aşağıdaki gibi POSIX seçeneğini seçin:
x86_64-w64-mingw32-g++ alternatifi için 2 seçenek vardır (/usr/bin/x86_64-w64-mingw32-g++ sağlayan).

Selection    Path                                   Priority   Status
————————————————————
0            /usr/bin/x86_64-w64-mingw32-g++-win32   60        auto mode
1            /usr/bin/x86_64-w64-mingw32-g++-posix   30        manual mode
* 2            /usr/bin/x86_64-w64-mingw32-g++-win32   60        manual mode
Press <enter> to keep the current choice[*], or type selection number: 1.

Marmara Reposunun Kaynağından İndirilmesi

cd ~
git clone https://github.com/marmarachain/marmara komodo –branch master –single-branch

Swap (Takas) Alanının 4 GB şeklinde ayarlanması (isteğe bağlı)

Swap (Takas) Alanı, işletim sistemi tarafından sabit diskinizde ayrılmış olan bir bölümdür. Eğer kullanılan sistemde 4 GB’lik RAM mevcutsa, RAM boyutunun tamamen dolup, cevap verememesi durumuna karşılık bu alanın ayarlanması tavsiye edilir.

* Linux:

Swap alanının olup olmadığını sudo swapon –show komutu ile kontrol edebilirsiniz. Sistemde swapfile mevcut olup en az 4 GB olacak şekilde ayarlanmadıysa bu durumda öncelik olarak sudo swapoff /swapfile komutuyla swap’ı kapatınız.

Aşağıdaki komutları kullanarak 4 GB RAM takas alanı oluşturabilirsiniz.
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Zcash parametrelerinin çekilmesi ve Derleme

cd k

cd komodo

./zcutil/fetch-params.sh

 

Linux (Ubuntu 18.04 & 20.04)

./zcutil/build.sh -j$(nproc)

MacOS

./zcutil/build-mac.sh -j$(nproc)

Windows

./zcutil/build-win.sh -j$(nproc)

Bu adım tamamlandığında, src dizini içinde komodod & komodo-cli dosyalarını bulacaksınız.

Windows Build’de src dizini içinde komodod.exe & komodo-cli.exe dosyalarını bulacaksınız.

cd src

Install Precompiled Binaries

Downloading Assets from Releases

Önceden derlenmiş ikili dosyalarımızı indirebilir ve açabilirsiniz. Bu en basit yöntemdir ve bu nedenle derleme prosedürü gerektirmez. Her işletim sisteminin zcash parametrelerini yüklemesi gerekir.

* Linux (Ubuntu 18.04 & 20.04)

Yayınlar sayfasından MCL-linux.zip dosyasını indirdikten sonra sıkıştırılmış dosyanın açılması ve bağımlılıkların yüklenmesi ve fetch-params’ın çalıştırılması gerekir.

Bağımlılık paketlerini kurun.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install libgomp1

İndirilen dizinde veya taşıdığınız veya kopyaladığınız başka herhangi bir dizinde aşağıdaki talimatları uyguladığınızdan emin olun.

sudo apt install unzip
unzip MCL-linux.zip
sudo chmod +x komodod komodo-cli fetch-params.sh
./fetch-params.sh

* MacOS

Sürümler sayfasından MCL-mac.zip dosyasını indirdikten sonra sıkıştırılmış dosyanın açılması ve bağımlılıkların yüklenmesi ve fetch-params’ın çalıştırılması gerekir.

Bir terminalde aşağıdaki komutu verin:

xcode-select –install

Homebrew’in kurulu olduğundan emin olun.

usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew install/master/install)”

Terminalde dizini komodod & komodo-cli konumuna değiştirin.

./fetch-params.sh

* Windows

Sürümler sayfasından MCL-win.zip dosyasını Windows bilgisayarınıza indirdikten sonra, dosyaları (komodod.exe & komodo-cli.exe) ayıklayın ve Masaüstünde MCL adlı yeni bir klasöre veya tercih ettiğiniz başka bir konuma yerleştirin.

run fetch.params.bat

Marmara’yı parametrelerle başlatın

Marmara Zincirini parametrelerle başlatın ve çalıştırın

komodod, Marmara zincirine bağlanmak için MCL parametreleriyle birlikte kullanılır. komodo-cli, RPC çağrıları için kullanılır.

Komodod ve komodo-cli dosyalarının bulunduğu konumda konut satırında aşağıdaki komutları çalıştırın.

Linux & MacOS

Marmara Zincirini Başlatmak İçin:

./komodod -ac_name=MCL -ac_supply=2000000 -ac_cc=2 -addnode=5.189.149.242 -addnode=161.97.146.150 -addnode=149.202.158.145 -addressindex=1 -spentindex=1 -ac_marmara=1 -ac_staked=75 -ac_reward=3000000000 &

Zinciri Durdurmak için:

./komodo-cli -ac_name=MCL stop

Windows

Marmara Zincirini Başlatmak İçin:

komodod.exe -ac_name=MCL -ac_supply=2000000 -ac_cc=2 -addnode=5.189.149.242 -addnode=161.97.146.150 -addnode=149.202.158.145 -addressindex=1 -spentindex=1 -ac_marmara=1 -ac_staked=75 -ac_reward=3000000000 &

Zinciri Durdurmak için:

komodo-cli.exe -ac_name=MCL stop

MCL’yi pubkey ile başlatma*

Gerekli parametreleri kullanarak arka plan programınızı yeniden başlatın ve pubkey’inizi ek bir parametre olarak eklediğinizden emin olun. Örneğin:

Linux & MacOS

./komodod -ac_name=MCL -ac_supply=2000000 -ac_cc=2 -addnode=5.189.149.242 -addnode=161.97.146.150 -addnode=149.202.158.145 -addressindex=1 -spentindex=1 -ac_marmara=1 -ac_staked=75 -ac_reward=3000000000 -gen -genproclimit=1 -pubkey=DO_NOT_USE_THIS_ADDRESS019n79b0921a1be6d3ca6f9e8a050mar17eb845fe46b9d756 &

Windows

komodod.exe -ac_name=MCL -ac_supply=2000000 -ac_cc=2 -addnode=5.189.149.242 -addnode=161.97.146.150 -addnode=149.202.158.145 -addressindex=1 -spentindex=1 -ac_marmara=1 -ac_staked=75 -ac_reward=3000000000 -gen -genproclimit=1 -pubkey=DO_NOT_USE_THIS_ADDRESS019n79b0921a1be6d3ca6f9e8a050mar17eb845fe46b9d756 &

Parametrelerin anlamı hakkında derinlemesine ayrıntılar için lütfen bakınız.

(*) Mevcut blockchain kurulumunuz içinde wallet.dat’ınıza ait pubkey kullanmanız önemlidir. Bir cüzdan adresi oluşturmadıysanız veya bir genel anahtar almadıysanız, lütfen Cüzdan ve özel anahtar bölümüne bakın.

Cüzdan ve özel anahtar

Bir adres oluşturma ve pubkey alma

Marmara Kredi Döngülerini kullanabilmek için kullanıcının pubkey sahibi olması ve zinciri pubkey ile başlatması gerekir. Aksi takdirde, akıllı zincirdeki herhangi bir madencilik veya staking boşuna olacaktır. Madenciliği yapılan veya stake edilen tüm paralar da bu adrese gönderileceğinden.

Bir pubkey almak için Marmara Zincirini normal başlatma parametreleriyle başlatın ve getnewaddress ve validenewaddress API komutlarını çalıştırın.

Ardından, ilgili özel anahtarı almak için dumpprivkey yöntemi kullanılmalıdır. Bu şekilde alınan Privkey, hatırlanması zor bir harf ve rakam kombinasyonundan oluşur. Bu gizli anahtarı güvenli ve emniyetli ve yalnızca sizin tarafınızdan erişilebilir durumda tutmanın, varlıklarınıza ulaşmanın çok önemli ve temel bir yolu olduğunu unutmayın.

Bu nedenle, kişi kendi sözcük dizisinden bir özel anahtar oluşturabilir ve gerektiğinde ilgili özel anahtarı oluşturmak için bu sözcüklerin kaydını tutabilir. Bunun için convertpassphrase API komutunu aşağıda anlatıldığı gibi kullanın.

Privkey ve yedek cüzdan

Bir pubkey için ilgili privkey’i almak için dumpprivkey yöntemi kullanılmalıdır. Bu yöntem, kullanıcının bir pubkey almak için getnewaddress ve validenewaddress API komutlarını kullanması durumunda kullanılır.

Kullanıcı sahip olduğu özel anahtarı cüzdana aktarmak isterse, ilgili özel anahtarı cüzdan adresine eklemek için importprivkey yöntemini kullanabilir.

Finansal varlıkları elinde tuttuğu için wallet.dat’ın bir yedeğine sahip olmak, biri için çok önemlidir. Bu nedenle, bir yedek almanız ve güvenli bir yerde güvenli bir şekilde tutmanız önemle tavsiye edilir.

Cüzdan Bilgileri ve pubkey

Marmara zinciri pubkey olmadan başlatılabilir ve ardından zincir için belirtilen pubkey’i ayarlamak için setpubkey komutu kullanılabilir. Gerektiğinde pubkey başlatma parametresi yerine bu yöntem kullanılabilir. setpubkey yöntemi, arka plan programı başlangıcında yalnızca bir kez çalışır. Zaten ayarlanmış olan pubkey’i değiştirmek için kullanılamaz.

marmarainfo komutu, pubkey’deki normal miktar, etkinleştirilen miktar, yapılan kredi döngülerinin ayrıntıları, kredi döngülerinde kilitlenen toplam tutar, kapatılan kredi döngülerinin sayısı ve kapatılan kredi döngülerinin ayrıntıları gibi kişinin cüzdanıyla ilgili önemli ayrıntıları döndürür.

getnewaddress

getnewaddress yöntemi, ödemeleri almak için yeni bir adres döndürür.

* Linux & MacOS

./komodo-cli -ac_name=MCL getnewaddress

Windows

komodo-cli.exe -ac_name=MCL getnewaddress

Örnek sonuç:

DO_NOT_USE_THIS_ADDRESSgg5jonaes1J5L786

validateaddress

validaddress yöntemi, verilen adres hakkında bilgi döndürür.

* Linux & MacOS

./komodo-cli -ac_name=MCL validateaddress RMC5GBzX2jw1yEyRgoYsTPeerSBL9Lu5SS

* Windows

komodo-cli.exe -ac_name=MCL validateaddress RMC5GBzX2jw1yEyRgoYsTPeerSBL9Lu5SS

Örnek çıktı:

{
“isvalid”: true,
“address”: “RMC5GBzX2jw1yEyRgoYsTPeerSBL9Lu5SS”,
“scriptPubKey”: “76a91482a9bd6b506854c2cf2fa5f5bc43d17527865c1188ac”,
“segid”: 52,
“ismine”: true,
“iswatchonly”: false,
“isscript”: false,
“pubkey”: “028b319b15476166241ca6d2f7ebdc877fcba0dbc961f6529d4e2e4d533e6effa5”,
“iscompressed”: true,
“account”: “”
}

convertpassphrase

Bu komut, kişinin kendi seçtiklerinden bir özel anahtar oluşturmak için kullanılır. 12 anahtar sözcük kümesinin içinde özel karakter bulunmadığından emin olun. Örneğin, seçtiklerinizi kullanarak: “kendi anahtar kelimelerinizi oluşturabilir ve gerektiğinde bunlardan özel anahtar oluşturabilir”.

* Linux & MacOS

./komodo-cli -ac_name=MCL convertpassphrase “can create your own keywords and generate privkey from these whenever needed “

* Windows

komodo-cli.exe -ac_name=MCL convertpassphrase “can create your own keywords and generate privkey from these whenever needed”

Örnek çıktı:

{
“agamapassphrase”: “can create your own keywords and generate privkey from these whenever needed”,
“address”: “RCna416S62uNVAKMwRuFtmRH2X3xJuTidD”,
“pubkey”: “03a3c416d3bafe44448dcb3a56e5dd13db5cc3e6992051a61a2f5675b4796c0d7a”,
“privkey”: “9005f5b2593ab3e662e1330ceca848d62fb2021165c6484ac7037cb4efc5317e”,
“wif”: “UtqWJyhXjJWYigKyKCm5ML96LvSZFDfZrT2HYXAdGs8byZ3uCMzy”
}

importprivkey

importprivkey yöntemi, kişinin cüzdanına özel bir anahtar ekler. Komut, burada açıklandığı gibi birkaç argüman alabilir. Bunun için en basit komut şekli demo amaçlı olarak aşağıda verilmiştir.

* Linux & MacOS

./komodo-cli -ac_name=MCL importprivkey “DONOTUSETHISxxxxxxxxxxxxxxxxx7KkCmRnnSg7iXvRUqhYoxC9Y”

* Windows

komodo-cli.exe -ac_name=MCL importprivkey “DONOTUSETHISxxxxxxxxxxxxxxxxx7KkCmRnnSg7iXvRUqhYoxC9Y”

Örnek çıktı:

R9z796AehK5b6NCPeVkGUHSpJnawerf8oP

 

dumpprivkey

dumpprivkey yöntemi, belirtilen adrese karşılık gelen özel anahtarı ortaya çıkarır. Bunun için komut demo amaçlı aşağıda verilmiştir.

* Linux & MacOS

./komodo-cli -ac_name=MCL dumpprivkey “PWqwYaWNEVT7V9SdfFHARWnoB7vcpSfdvs”

* Windows

komodo-cli.exe -ac_name=MCL dumpprivkey “PWqwYaWNEVT7V9SdfFHARWnoB7vcpSfdvs”

Örnek çıktı:

DONOTUSETHISxxxxxxxxxxxxxxxxx7KkCmRnnSg7iXvRUqhYoxC9Y

Backup wallet.dat

Wallet.dat dosyasının yedeklenmesi, birinin varlıklarını tuttuğu için çok önemlidir. Bu dosyayı yedeklemenin bir yöntemi, dosyanın bir kopyasını arşivlemektir.

* Linux

Bir Linux makinesinde dosya şurada bulunabilir: ~/.komodo/MCL/wallet.dat

#wallet.dat dosyasını kopyala
cp -av ~/.komodo/MCL/wallet.dat ~/wallet.dat

# wallet.dat dosyasını yeniden adlandır
mv ~/wallet.dat ~/2020-08-09-wallet_backup.dat

# wallet.dat dosyasının bir arşivini oluşturun
tar -czvf ~/2020-08-09-wallet_backup.dat.tgz ~/2020-08-09-wallet_backup.dat

# Son dosyayı güvenli bir konuma taşıyın

* MacOS

MacOS’ta wallet.dat dosyası burada bulunur: ~/Library/Application\ Support/Komodo/MCL/wallet.dat

# Dosyayı kopyalayın
cp -av ~/Library/Application\ Support/Komodo/MCL/wallet.dat ~/wallet.dat

# Dosyayı yeniden adlandır
mv ~/wallet.dat ~/2019-05-17-wallet_backup.dat

# Arşiv yapmak için
tar -czvf ~/2019-05-17-wallet_backup.dat.tgz ~/2019-05-17-wallet_backup.dat

# Son dosyayı güvenli bir konuma taşıyın

* Windows

Windows makinesinde dosya şu konumdadır: %HOMEPATH%\AppData\Roaming\Komodo\MCL\wallet.dat

setpubkey

Pubkey’i ayarlayarak Marmara düğümünü başlatmak çok önemlidir. Zincir, pubkey ile genişletilmiş parametrelerle başlatılabilir veya pubkey belirtilerek marmara zinciri to başlatıldıktan sonra setpubkey komutu kullanılabilir.

* Linux

./komodo-cli -ac_name=MCL setpubkey pubkey

* Windows

komodo-cli.exe -ac_name=MCL setpubkey pubkey

getinfo

getinfo komutu şöyle önemli ayrıntıları döndürür:

  • MARMARA’nın “versiyon” versiyonu;
  • Düğümünüzün senkronizasyon durumu (“bloks” ve “longestchain” parametreleri eşitse bu parametrenin değeri doğrudur);
  • “difficulty” yoluyla zincirin zorluğu;
  • “connections” yoluyla zincire en yakın bağlı düğümlerin sayısı;
  • “pubkey” üzerinden zincire bağlı olduğunuz pubkey:

* Linux

./komodo-cli -ac_name=MCL getinfo

* Windows

komodo-cli.exe -ac_name=MCL getinfo

Örnek çıktı:

{
“version”: 3000300,
“protocolversion”: 170009,
“KMDversion”: “0.5.3”,
“synced”: true,
“notarized”: 616208,
“prevMoMheight”: 616208,
“notarizedhash”: “0ba0864989083e050df8409b0d91bc4d910ba05aee691e68b172d1da62518bad”,
“notarizedtxid”: “786cbda956bfb058c5aa6fdfceafafbbf1e21d62efda8ce48dfd17ef8c2e1681”,
“notarizedtxid_height”: “mempool”,
“KMDnotarized_height”: 0,
“notarized_confirms”: 0,
“walletversion”: 60000,
“balance”: 0.00000000,
“blocks”: 616226,
“longestchain”: 616226,
“tiptime”: 1616766087,
“difficulty”: 583612.9172907906,
“keypoololdest”: 1606903639,
“keypoolsize”: 101,
“paytxfee”: 0.00000000,
“sapling”: 61,
“timeoffset”: 0,
“connections”: 16,
“proxy”: “”,
“testnet”: false,
“relayfee”: 0.00000100,
“errors”: “”,
“pubkey”: “028b319b15476166241ca6d2f7ebdc877fcba0dbc961f6529d4e2e4d533e6effa5”,
“CCid”: 2,
“name”: “MCL”,
“p2pport”: 33824,
“rpcport”: 33825,
“magic”: -1687041972,
“premine”: 2000000,
“reward”: “3000000000”,
“halving”: “0”,
“decay”: “0”,
“endsubsidy”: “0”,
“notarypay”: “0”,
“staked”: 75
}

marmarainfo

marmarainfo komutu şöyle önemli ayrıntıları döndürür:

  • “myPubkeyNormalAmount” yoluyla pubkey’deki normal miktar;
  • “myActivatedAmount” yoluyla etkinleştirilen miktar;
  • “Loops” aracılığıyla yapılan kredi döngülerinin detayları;
  • “TotalLockedInLoop” yoluyla kredi döngülerinde kilitlenen toplam tutar;
  • “numclosed” aracılığıyla kapatılan kredi döngülerinin sayısı; ve “closed” aracılığıyla kapatılan kredi döngülerinin ayrıntıları.

Yararlı RPC Komutları

komodod & komodo-cli

Komodod yazılım uygulaması, tüm Komodo blok zincirlerine güç sağlayan Akıllı Zincir arka plan programıdır.

Komodo-cli yazılım uygulaması, bir geliştiricinin komut satırı aracılığıyla komodod’a API çağrıları yürütmesine izin verir.

RPC Komutları

Marmara akıllı zinciri %25 kazılabilir ve %75 stake edilebilir olup staking sadece kullanıcılar paralarını iki fondan birine kilitlediğinde yapılabilir, yani; “Aktif” ve “Kredi Döngüsünde Kilitli” (LCL) fonlar.

Madeni paraları etkinleştirmek için marmaralock kullanılır. Staking için aktif jetonlara ihtiyaç vardır ve eğer yoksa, staking modu açık olsa bile, staking yoluyla hiçbir blok bulunamayacaktır.

Düğümün modu, getgenerate komutu kullanılarak kontrol edilebilir. Ek olarak, setgenerate komutu, düğümü staking veya madencilik moduna ayarlamak için kullanışlıdır.

marmaraunlock aktif olan miktarı normal hesaba çevirmek için kullanılır. Normal Tutar, ödemeleri sendtoaddress komutu aracılığıyla doğrudan bir adrese göndermek için kullanılır. Ödeme, normal madeni paralardan küçük bir işlem ücreti düşülerek ilgili cüzdanda bulunan Normal Tutara göre yapılır.

getinfo komutu, MARMARA’nın versiyonu, kişinin düğümünün senkronizasyon durumu, zincirin zorluğu, zincire en yakın bağlı düğüm sayısı, kişinin düğümünün zincire bağlandığı pubkey gibi düğüm hakkında önemli bilgileri döndürür.

Düğümün düğüme yakın olup olmadığını kontrol etmek için getpeerinfo komutu kullanılabilir.

listaddressgroupings yöntemi, girdi olarak veya geçmiş işlemlerde ortaya çıkan değişiklik olarak, ortak mülkiyetleri ortak kullanım yoluyla halka açık hale getirilmiş adres gruplarını listeler.

getaddressesbyaccount yöntemi, verilen hesap için adres listesini döndürür.

Terminal/komut satırında burada verilen blockchain komutlarını  “help ” komutu ile sorgulayarak Marmara Zinciri yöntemlerini daha ayrıntılı olarak inceleyebilirsiniz.

marmaralock

Madeni paraları etkinleştirmek için marmaralock kullanılır. Komutun tamamı aşağıda verilmiştir ve miktar 1000 gibi madeni para miktarı ile değiştirilmelidir.

Etkinleştirilmiş paraları görmek için, daha önce verilen marmarainfo komutunu kullanın ve “myActivatedAmount” parametresinde değeri arayın.

Marmaralock işlemini onaylamak için JSON nesnesi aracılığıyla döndürülen hex’i kopyalayın ve senddrawtransaction komutuyla doğrulayın.

* Linux

./komodo-cli -ac_name=MCL marmaralock amount

* Windows

komodo-cli.exe -ac_name=MCL marmaralock amount

Örnek çıktı:

{
“result”: “success”,
“hex”:”0400008085202f89020039b219200ae4b5c83d77bffce7a8af054d6fb……….e9181f6aac3e1beb1e260e9a1f49ed24e6ac00000000edeb04000000000000000000000000″
}

marmaraunlock

Madeni paraları etkinleştirmek için marmaralock kullanılır. Komutun tamamı aşağıda verilmiştir ve miktar 1000 gibi madeni para miktarı ile değiştirilmelidir.

Etkinleştirilmiş paraları görmek için, daha önce verilen marmarainfo komutunu kullanın ve “myActivatedAmount” parametresinde değeri arayın.

Marmaralock işlemini onaylamak için JSON nesnesi aracılığıyla döndürülen hex’i kopyalayın ve senddrawtransaction komutuyla doğrulayın.

* Linux

./komodo-cli -ac_name=MCL marmaraunlock amount

* Windows

komodo-cli.exe -ac_name=MCL marmaraunlock amount

 

sendrawtransaction

sendrawtransction yöntemi, ham işlemi (serileştirilmiş, onaltılık kodlanmış) yerel düğümlere ve ağa gönderir.

Bu yöntem, aşağıdaki komutlar verildikten sonra yürütülmelidir:

  • marmaralock
  • marmaraunlock
  • marmarareceive
  • marmaraissue

Yukarıdaki komut blok zincirinde başarılı bir şekilde yürütülürse, yanıt olarak bir işlem kimliği verir. Marmara Explorer‘da ilgili kimlik aranarak bu işlemin doğrulanıp doğrulanmadığı kontrol edilebilir.

Ham işlemlerin mempool’da toplandığını ve bloğa kaydedilen işlemi görmek için birkaç bloğa ihtiyaç duyulabileceğini unutmayın.

* Linux

./komodo-cli -ac_name=MCL sendrawtransaction hex

* Windows

komodo-cli.exe -ac_name=MCL sendrawtransaction hex

setgenerate

Bu yöntem, düğümü madencilik veya staking moduna ayarlamak için kullanılır. Aşağıda sunulan komutlar, düğümü paylaştırma moduna değiştirir. “staking”: true’nun, aktifleştirilmiş jetonunuz yoksa (coinleri kilitlemediyseniz) kullanılmayacağını unutmayın! Düğümün modu, getgenerate yöntemi kullanılarak kontrol edilir.

* Linux

./komodo-cli -ac_name=MCL setgenerate true 0

* Windows

komodo-cli.exe -ac_name=MCL setgenerate true 0

getgenerate

getgenerate komutu, düğümün kipini kontrol etmek için kullanılır.

  • “staking”: false, staking’in kapalı olduğu anlamına gelir.
  • “generate”: true, madenciliğin etkin olduğu anlamına gelir.
  • “numthreads”: 1, madencilik için kullanılan çekirdek sayısını ifade eder. Bu durumda, bu parametre daha önce bir olarak ayarlanmıştır.

* Linux

./komodo-cli -ac_name=MCL getgenerate

* Windows

komodo-cli.exe -ac_name=MCL getgenerate

Örnek çıktı:

{
“staking”: false,
“generate”: true,
“numthreads”: 1
}

sendtoaddress

Belirli bir adrese ödeme göndermek için sendtoaddress komutu kullanılır. Tutar en yakın 0,00000001’e yuvarlanır. Yapılan işlem için kişinin Normal Tutarından işlem ücreti düşülür.

Bu komut doğrudan belirtilen adrese ödeme gönderir ve dikkatli kullanılmalıdır. Zira bu yöntemle gönderilen ödeme daha sonra geri alınamaz.

* Linux

./komodo-cli -ac_name=MCL sendtoaddress “MCL_address” amount

* Windows

komodo-cli.exe -ac_name=MCL sendtoaddress “MCL_address” amount

getpeerinfo

getpeerinfo komutu, düğümünüzün etrafındaki zincire en yakın bağlı düğümler hakkında ayrıntılı bilgi döndürür.

* Linux

./komodo-cli -ac_name=MCL getpeerinfo

* Windows

komodo-cli.exe -ac_name=MCL getpeerinfo

Örnek çıktı:

[
{
“id”: 1,
“addr”: “37.148.210.158:33824”,
“addrlocal”: “46.106.36.203:17932”,
“services”: “0000000070000005”,
“lastsend”: 1617004153,
“lastrecv”: 1617004153,
“bytessent”: 122607,
“bytesrecv”: 8224441,
“conntime”: 1617003195,
“timeoffset”: -2,
“pingtime”: 10.546878,
“version”: 170009,
“subver”: “/MagicBean:3.0.3beta1(bitcore)/”,
“inbound”: false,
“startingheight”: 620149,
“banscore”: 0,
“synced_headers”: 620164,
“synced_blocks”: 620164,
“inflight”: [
],
“whitelisted”: false
},

{ ….

}

]

marmaraamountstat

marmaraamountstat komutu, sahibinden bağımsız olarak Marmara blok zincirinin tüm aktif, normal ve kilitli döngü miktarını almak için kullanılır. start_height ve end_height girişleri sıfır(0) yapılırsa tüm veri setini bloklardan alır.

* Linux

./komodo-cli -ac_name=MCL marmaraamountstat begin_height end_height

* Windows

komodo-cli.exe -ac_name=MCL marmaraamountstat begin_height end_height

Örnek çıktı:

{
“result”: “success”,
“BeginHeight”: 50000,
“EndHeight”: 60000,
“TotalNormals”: 166854.85464948,
“TotalPayToScriptHash”: 0.00000000,
“TotalActivated”: 582681.11953150,
“TotalLockedInLoops”: 237510.00000000,
“TotalUnknownCC”: 0.02820000,
“SpentNormals”: 161377.88109325,
“SpentPayToScriptHash”: 0.00000000,
“SpentActivated”: 382128.12128773,
“SpentLockedInLoops”: 143510.00000000,
“SpentUnknownCC”: 0.00000000
}

listaddressgroupings

listaddressgroupings, cüzdan adresi çiftlerini ve bunlardaki ilgili normal miktarları listelemek için kullanılır.

* Linux

./komodo-cli -ac_name=MCL listaddressgroupings

* Windows

komodo-cli.exe -ac_name=MCL listaddressgroupings

getaddressesbyaccount

getaddressesbyaccount, verilen hesap için adres listesini döndürmek için kullanılır.

* Linux

./komodo-cli -ac_name=MCL getaddressesbyaccount “”

* Windows

komodo-cli.exe -ac_name=MCL getaddressesbyaccount “”

Örnek Çıktı:

[
“RMC5GBzX2jw1yEyRgoYsTPeerSBL9Lu5SS”
]

Kredi döngüleri Komutları

Marmara versiyon 1

Mevcut Marmara Kredi döngüleri şu anda %100 teminatlandırma modunda olan Protokol 1’e dayalı olarak çalışmaktadır. % 100 teminatlandırma ihraççı tarafından hem kendisi hem de hamil adına yapılır. Hem ihraççı hem de hamil, blockchain ödüllerini almak için 3 kat staking şansına sahiptir. İhraççı, kredinin vade tarihine kadar 3 kat staking şansına sahipken, hamil, krediyi, ihraççı ile staking yapmaya devam edecek yeni bir hamile ciro edene/aktarana kadar 3x stake etme şansına sahiptir. Kredi döngüleri yalnızca etkinleştirilmiş paralar kullanılarak yapılabilir
terminoloji

İhraççı: Bir kredi döngüsünde ilk önce kredi oluşturan kişi. Kredi döngüsünde ilk düğümü oluşturan kişidir. Kredi vade tarihine kadar %100 veya sıfır teminatlı olarak teminatlandırılabilir.

Taşıyıcı (Tutucu): Bir kredi döngüsündeki son düğüm her zaman taşıyıcı (tutucu) olarak adlandırılır. Biri bir krediyi bir döngüde transfer ettiğinde, bu düğüm hemen bir onaylayıcı olur.

Onaylayan: Kredi döngüsündeki ilk düğüm olan ihraççı ile son düğüm arasında kalan ve krediyi bir sonraki düğüme aktaran diğer tüm düğümler.

Vade: Bir kredinin sona erme süresi. Tahminde bloklar olarak ölçülür. Günlük blok 1440’tır (saatte 60 blok çarpı günde 24 saat). Bir kredinin 100 gün vadeli olduğunu, vadesinin 1440×100 yani 144.000 blok olduğunu varsayalım.

Yerleştirme: Bir kredi vadesi geldiğinde, bir döngüdeki son düğüm olan hamiline ödeme yapılır. Hesaplaşma otomatik veya manuel olabilir.

Escrow: Protokol 2 için güvene dayalı taraflar. EscrowOn yanlışsa, %100 teminatlandırma kullanılır ve ödeme otomatik yapılır. Tamamen güvenilir olmayan sürüm olarak çalışan protokol 1’de emanete gerek yoktur.

Avalist: Avalistler, ek ortaklaştırma olarak MCL ile kart çıkaran veya onaylayanları destekler ve bu destekle 3 kat staking kazanabilir. İtfa edilmemesi durumunda fonları kullanılır. Avalistler yalnızca Protokol 2’de mevcuttur. Parametre avalcount, protokol 1 için her zaman sıfırdır.

BlockageAmount: Bu, 2. protokol için bir terimdir. Bir ihraççıdan, hamil tarafından bir miktar teminat koyması istenebilir. Bu durumda, ihraççı protokol 2’de 3 kat staking avantajından yararlanır.

İtiraz Sona Erme: Protokol 2’deki kredi döngülerindeki geri ödeme sorununu çözmek için ödemesiz dönemdir. Bir ihraççı, teminatlandırma olmadan veya yetersiz teminatlandırma olmadan protokol 2 kapsamında bir kredi oluştururken bu süreyi bloklar halinde kullanabilir. Bu süre sona ermeden önce, bir emanet, ödeme yapılmamasını çözmek için ihraççı ile yapılan anlaşmaya göre tüm işlemleri yapmalıdır. Aksi halde emanet sistemde cezalandırılır.

Kredi Döngüsü Yapmak İçin Önemli Komutlar

marmareceive, bir ihraççıdan veya cirantadan kredi almak için kullanılır. Bir ihraççıdan akreditif isterken, yani ilk düğümde veya akreditifin ciranta tarafından yeni bir hamiline devredilmesinde olmak üzere iki kullanımı vardır.

marmaraissue, yalnızca bir kredi oluşturmak/vermek için ilk düğüm olan ihraççı tarafından kullanılır. Bu sayede ilk sahibine, yani ikinci düğüme de bir kredi aktarılmış olur.

marmarareceivelist metodu pubkey parametresi ile yayınlayıcının kendisine yapılan alım isteklerini görmek için kullanılabilir.

ihraççı ile hamil arasındaki kredi döngüsünü görüntülemek için marmaracreditloop yöntemi kullanılabilir.

marmaraholderloops yöntemi taşıyıcının (tutucu) açık ve kapalı döngülerini döndürür.

marmaratransfer yöntemi, kredi döngüsünün yeni bir hamili bu durumda ciranta haline gelmesi için transfer etmek için kullanılır.

marmarareceive, marmaraissue ve marmaratransfer gibi yöntemlerle yapılan işlemlerin doğrulanması için senddrawtransaction yöntemi kullanılmaktadır.

Kredi Döngüsü Oluşturma

Bu, iki düğümün ilk kez bir kredi döngüsü oluşturduğu durumdur. Bu kredi döngüsü, piyasada bir mal veya hizmetin satışı için oluşturulabilir. Bu durumda ürün/hizmeti satan hak sahibi, ihraççıdan (ürün/hizmeti ödeyen) marmarareceive komutunu aşağıdaki şekilde yazarak kredi talebinde bulunmalıdır:

  • sendrpk, verenin (ürünü/hizmeti ödeyen) genel anahtar adresidir.
  • amount ödeme tutarıdır. Lütfen bu tutarın ihraççının aktif fonunda bulunması gerektiğini ve değilse ihraççı tarafından marmaralock komutu ile aktifleştirilmesi gerektiğini unutmayın.
  • para birimi MARMARA’dır.
  • matures, ilgili kredinin sona erdiği zamandır, saatte 60 blok günde 24 saat, günde 1440 blok yapar.
  • {“avalcount”:”n”} avalistlerin sayısıdır, yani protokol 1 için ‘{“avalcount”:”0″}’. Protokol 1 için n’yi 0 ile değiştirin.

* Linux

./komodo-cli -ac_name=MCL marmarareceive senderpk amount currency matures ‘{“avalcount”:”n”}’

* Windows

komodo-cli.exe -ac_name=MCL marmarareceive senderpk amount currency matures {\”avalcount\”:\”n\”}

Bu marmarareceive çağrısı bir hex kodu üretir. Bu HEXCODE’un, sahibi tarafından sendrawtransaction komutu çalıştırılarak doğrulanması gerekir:

* Linux

./komodo-cli -ac_name=MCL sendrawtransaction HEXCODE

* Windows

komodo-cli.exe -ac_name=MCL sendrawtransaction HEXCODE

Bu komut yürütüldüğünde, txid adlı bir işlem kimliği oluşturulur. Kredi döngüsünü tamamlamak için alıcıpk ile birlikte bu txid’in veren kuruluşa iletilmesi gerekir. Ancak, bu iletişime bir alternatif, ihraççının kendisine yapılan alma isteklerini görmek için kullanılabilecek marmarareceivelist yönteminin kullanılması olabilir.

marmarareceivelist

marmarareceivelist komutu bir pubkey ve bir maxage parametresi ile verilir. Bu pubkey, Marmara Zincirine bağlı ihraççının pubkey adresidir ve varsayılan olarak maksimum yaş 24*60’tır. Bu komutun yanıtı, ilgili pubkey’ler tarafından oluşturulan txid çiftlerinin bir listesidir.

marmarareceivelist yöntemi, aşağıdaki komut kullanılarak ihraççı tarafından yürütülür. pubkey ve maxage parametrelerini ilgili girişlerle değiştirin:

Bu marmarareceive çağrısı bir hex kodu üretir. Bu HEXCODE’un, sahibi tarafından sendrawtransaction komutu çalıştırılarak doğrulanması gerekir.

* Linux

./komodo-cli -ac_name=MCL marmarareceivelist pubkey maxage

* Windows

komodo-cli.exe -ac_name=MCL marmarareceivelist pubkey maxage

Örnek çıktı:

{
“version”: 2,
“txid”: “5247d7d7e26eaaff51c67b0f9674……..503e52c4e0d3440a…..”,
“creationtxid”: “0000000000000000000000000000000000000000000000000000000000000000”,
“funcid”: “B”,
“amount”: 1.00000000,
“matures”: 1194769,
“receivepk”: “……dcfd40df475c22c210……..b49e9a065be6848390da458c”,
“issuerpk”: “0…..313a41befdfa50cbdd68b0d33b267e367cf8f5286826c069……”
}

marmaraissue

marmaraissue komutu yalnızca bir kredi oluşturan/veren ilk düğüm olan ihraççı tarafından kullanılır. Bu sayede ilk sahibine, yani ikinci düğüme de bir kredi aktarılmış olur. Bir kredi döngüsüne ilişkin parametrelerin birçoğuna, ihraç eden ile ilk hamil arasında karar verilir. marmaraissue yöntemi aşağıdaki bağımsız değişkenleri alır:

  • receiverpk, tutucu olan alıcının pubkey’idir.
  • “avalcount”:”n” avalistlerin sayısıdır, yani protokol 1 için ‘{“avalcount”:”0″}’.
  • “autosettlement”:”true”|”false” Otomatik Yerleşim, Protokol 1’deki %100 teminatlandırma nedeniyle doğrudur.
  • “autoinsurance”:”true”|”false” Protokol 1’deki %100 teminatlandırma nedeniyle otomatik sigorta doğrudur.
  • “disputeexpires”:”offset” Anlaşmazlık sona erme tarihi, Protokol 1’deki 100 teminatlandırma nedeniyle 0 olarak ayarlanmıştır.
  • “EscrowOn”:”true”|”false” EscrowOn, Protokol 1’deki %100 teminatlandırma nedeniyle yanlış olarak ayarlandı.
  • “BlockageAmount”:”Protokol 1’deki 100 teminatlandırma nedeniyle blokaj tutarı 0 olarak ayarlanmıştır.
  • requesttxid, sahibi tarafından oluşturulan ve verene iletilen txid’dir.

* Linux

./komodo-cli -ac_name=MCL marmaraissue receiverpk ‘{“avalcount”:”n”, “autosettlement”:”true”|”false”, “autoinsurance”:”true”|”false”, “disputeexpires”:”offset”, “EscrowOn”:”true”|”false”, “BlockageAmount”:”amount” }’ requesttxid

Komutun Tipik Örneği:

./komodo-cli -ac_name=MCL marmaraissue receiverpk ‘{“avalcount”:”0″, “autosettlement”:”true”, “autoinsurance”:”true”, “disputeexpires”:”0″, “EscrowOn”:”false”, “BlockageAmount”:”0″ }’ requesttxid

* Windows

komodo-cli.exe -ac_name=MCL marmaraissue receiverpk “{\”avalcount\”:\”n\”, \”autosettlement\”:\”true”|”false\”, \”autoinsurance\”:\”true”|”false\”, \”disputeexpires\”:\”offset\”, \”EscrowOn\”:\”true”|”false\”, \”BlockageAmount\”:\”amount\”}” requesttxid

Komutun Tipik Örneği:

komodo-cli.exe -ac_name=MCL marmaraissue receiverpk “{\”avalcount\”:\”0\” \”autosettlement\”:\”true\” \”autoinsurance\”:\”true\” \”disputeexpires\”:\”offset\” \”EscrowOn\”:\”false\” \”BlockageAmount\”:\”0\”}” requesttxid

Bu marmaraissue komutu, sırayla bir onaltılık kod yanıtı döndürür ve şimdi yayınlayıcının, blok zincirinde işlemin yürütülmesini sağlamak için sendrawtransaction yöntemini yürütmesi gerekir.

Bu, ihraççı ile hamil arasında bir kredi döngüsü oluşturur. Bir döngüye kilitlenen krediler, alışveriş sırasında bir şeyler satın almak için dolaşıma sokulabilir. İhraççı ve hamil, kredi döngüsünün vadesine kadar MCL fonlarında 3 kat staking şansı elde eder.

marmaracreditloop

İhraççı ile hamil arasındaki kredi döngüsünü görüntülemek için marmaracreditloop komutu çalıştırılabilir:

txid, Marmara Kredi Döngüsünün baton transfer kimliğidir.

* Linux

./komodo-cli -ac_name=MCL marmaracreditloop txid

* Windows

komodo-cli.exe -ac_name=MCL marmaracreditloop txid

marmaraholderloops

Bu komut, taşıyıcının ilk ve son yüksekliği ve minimum ve maksimum miktarı ayarlayarak sınırlandırılabilen açık ve kapalı döngülerini döndürür. Tüm parametreler sıfıra ayarlanırsa, yöntem mevcut tüm verileri döndürür.

* Linux

./komodo-cli -ac_name=MCL marmaraholderloops firstheight lastheight minamount maxamount pubkey

* Windows

komodo-cli.exe -ac_name=MCL marmaraholderloops firstheight lastheight minamount maxamount pubkey

Bir Kredi Döngüsünün Aktarılması

Bu, bir hamilin daha önce oluşturulan aynı kredi döngüsünde mal/hizmet satın alarak döngüye kilitlenmiş madeni paraları kullanmak istediği durumdur. Böyle bir durumda, hamil bir krediyi bir döngüde transfer ettiğinde, o düğüm hemen bir ciranta dönüşür. Ve bu şekilde, bir kredi döngüsündeki son düğüm her zaman hamiline (hamiline) denir.

Başka bir deyişle, tüm cirantalar daha önce hamildir. Bir kredi yeni bir sahibine transfer edildiğinde, onaylayanların 3 kat staking gücünü kaybettiği akılda tutulmalıdır.

Yeni hamil marmarareceive komutu ile ciranta mal/hizmet satışı karşılığında kredi almak için marmarareceive talebinde bulunur.

  • sendrpk, cirantanın (ürünü/hizmeti satın alan) pubkey adresidir.
  • batontxid, önceden oluşturulmuş kredi döngüsünün baton işlem kimliğidir
  • {“avalcount”:”n”} avalistlerin sayısıdır, yani protokol 1 için {“avalcount”:”0″}.

* Linux

./komodo-cli -ac_name=MCL marmarareceive senderpk batontxid ‘{“avalcount”:”n”}’

* Windows

komodo-cli.exe -ac_name=MCL marmarareceive senderpk batontxid {\”avalcount\”:\”n\”}

Bu marmarareceive çağrısı bir hex kodu üretir. Bu HEXCODE’un, sendrawtransaction komutu çalıştırılarak yeni sahibi tarafından doğrulanması gerekir.

Bu sendrawtransaction komutu yürütüldüğünde, txid adlı bir işlem kimliği oluşturulur.

Bu txid, alıcıpk ile birlikte, kredi döngüsünü tamamlamak için onaylayana iletilmelidir.

Ancak bu iletişime bir alternatif olarak cirantanın kendisine yapılan alma isteklerini görmek için kullanabileceği marmarareceivelist yöntemi kullanılabilir.

Ardından ciranta, kredilerin yeni hamiline geçmesi için aşağıdaki marmaratransfer komutunu uygular:

  • receiverpk, yeni sahibi olan alıcının pubkey’idir.
  • “avalcount”:”n” avalistlerin sayısıdır, yani protokol 1 için ‘{“avalcount”:”0″}’ (n=0).
  • requesttxid, onaylayana iletilen yeni hak sahibi tarafından oluşturulan txid’dir.

* Linux

./komodo-cli -ac_name=MCL marmaratransfer receiverpk ‘{“avalcount”:”n”}’ requesttxid

* Windows

komodo-cli.exe -ac_name=MCL marmaratransfer receiverpk {\”avalcount\”:\”n\”} requesttxid

Daha sonra onaylayan, marmaratransfer komutundan elde edilen hex kodu ile senddrawtransaction komutunu yürütür.

Bu sayede kredi döngüleri mal/hizmet satın almak için vade süresi içerisinde 1000. düğüme kadar dolaşabilmektedir.

Kaynak: https://marmara.io/tr/documentation

Referanslar

Marmara Kredi Döngülerinin nasıl çalıştığı hakkında daha ayrıntılı bilgi için lütfen buradaki ayrıntılı makaleye bakın.