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
Ubuntu için 16.04 veya 18.04 + sürümleri
64-bit İşlemci
Minimum 2 CPU
Minimum 4GB RAM (8GB+ önerilir)
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
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.
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.