Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


buzzkillb last won the day on July 11

buzzkillb had the most liked content!


About buzzkillb

Personal Information

  • D Address

Recent Profile Visitors

35133 profile views

buzzkillb's Achievements


Newbie (1/14)

  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare
  • Very Popular Rare

Recent Badges



  1. Copy Pasta of how to remove garbage from addresses that NOMP can't handle. reference: https://bitcoin.stackexchange.com/questions/34057/error-trying-to-send-payments-with-rpc-sendmany Eliminate the whitespace from workers' names. This commit shows how to do that. Combine payouts together when there is more than one worker with the same address. The code for that is shown below. In paymentProcessor.js, change var address = worker.address = (worker.address || getProperAddress(w)); worker.sent = addressAmounts[address] = satoshisToCoins(toSend); to var address = worker.address = (worker.address || getProperAddress(w)).trim(); if (!worker.sent) { worker.sent = 0; } worker.sent += satoshisToCoins(toSend); if (!(address in addressAmounts)) { addressAmounts[address] = 0; } addressAmounts[address] += satoshisToCoins(toSend);
  2. Tried latest 4.0.4 Qubes OS with AMD 3700x, Nvidia 1070, and Gigabyte Aorus B550M. Ethernet did not work after install. I am lazy so here is how I updated the kernel without really doing anything special. First go here and look for the kernel you want, I found the latest latest. https://mirrors.edge.kernel.org/qubes/repo/yum/r4.0/current-testing/dom0/fc25/rpm/ As of this post, download these 2 files from there https://mirrors.edge.kernel.org/qubes/repo/yum/r4.0/current-testing/dom0/fc25/rpm/kernel-latest-5.12.10-1.fc25.qubes.x86_64.rpm https://mirrors.edge.kernel.org/qubes/repo/yum/r4.0/current-testing/dom0/fc25/rpm/kernel-latest-qubes-vm-5.12.10-1.fc25.qubes.x86_64.rpm I then copied to a USB drive and put the 2 files into an appVM, vault sounds good in a Downloads/kernel directory, to copy over to dom0. Go to the dom0 terminal and copy to dom0 qvm-run --pass-io <src-vm> 'cat /path/to/file_in_src_domain' > /path/to/file_name_in_dom0 Example, replace USERNAME with your username qvm-run --pass-io vault 'cat /home/user/Downloads/kernel/kernel-latest-5.12.10-1.fc25.qubes.x86_64.rpm' > /home/USERNAME/kernel-latest-5.12.10-1.fc25.qubes.x86_64.rpm qvm-run --pass-io vault 'cat /home/user/Downloads/kernel/kernel-latest-qubes-vm-5.12.10-1.fc25.qubes.x86_64.rpm' > /home/USERNAME/kernel-latest-qubes-vm-5.12.10-1.fc25.qubes.x86_64.rpm Double check the file sizes are correct and then time to install sudo rpm -ivh --nodeps kernel-latest-5.12.10-1.fc25.qubes.x86_64.rpm sudo rpm -ivh --nodeps kernel-latest-qubes-vm-5.12.10-1.fc25.qubes.x86_64.rpm Reboot, and now change all your appvm's and templates to latest kernel. I rebooted once more just because and ethernet should work.
  3. Looks like the windows binary does support all GPU without the -d flag.
  4. Bitclout seems interesting, so lets mine some. reference: https://github.com/cloutreactor/release Update Nvidia GPU Drivers and make sure you have Cuda 11.2 https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html Direct Link to Cuda: https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.89_win10.exe Save the latest Windows miner to your drive https://github.com/cloutreactor/release/releases and then create a .bat or .cmd file for your command line. @echo off cloutreactor-windows-amd64.exe --public-key="YOURADDYHERESTARTSWITHB" pause The release page says this doesnt currently support, so use the -d flag. For GPU slot 0 use -d 0, for slot 1 use -d 1 startd0.cmd @echo off cloutreactor-windows-amd64.exe --public-key="ADDYGOESHERESTARTSWITHB" -d 0 pause And away you go. Don't forget to follow if you like the guide. https://bitclout.com/u/cryptobuzzb https://bitclout.com/u/denariuscoin https://bitclout.com/u/carsenk
  5. Ubuntu 20.04 NOMP with Denarius Snap Daemon Install Dependencies sudo apt install build-essential libtool autotools-dev autoconf pkg-config libssl-dev sudo apt install libboost-all-dev git npm nodejs libminiupnpc-dev redis-server sudo apt install python git curl Install node 0.10.25 wget https://nodejs.org/dist/v0.10.25/node-v0.10.25-linux-x64.tar.gz tar xvf node-v0.10.25-linux-x64.tar.gz cd node-v0.10.25-linux-x64 sudo cp -R bin/* /usr/bin/ sudo cp -R lib/* /usr/lib/ cd ~ Install Denarius Snap Daemon sudo apt update sudo apt install snapd sudo snap install denarius Clone NOMP cd git clone https://github.com/buzzkillb/node-open-mining-portal nomp cd nomp #I had to run npm update twice before it worked right npm update Run Nomp node init.js
  6. How to setup a Fantom RPC Go-Opera Node on Ubuntu 20.04. You want to lock this down yourself at some point after testing it works. We will need a couple things, mainly go, nginx and go-opera. go-opera: https://github.com/Fantom-foundation/go-opera go: https://golang.org/dl/ nginx Install go, latest is https://golang.org/dl/go1.16.4.linux-amd64.tar.gz wget https://golang.org/dl/go1.16.4.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.16.4.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin source ~/.bashrc cd ~ go version Clone github and make the go-opera binary sudo apt install git git clone https://github.com/Fantom-foundation/go-opera cd go-opera make opera cd build cp opera ~/ cd ~ I am putting opera binary in the main home folder so I can keep track of which version I am on. Find your IP address for initial go-opera syncing. ip a We also need the genesis block in our home folder. wget https://opera.fantom.network/mainnet.g Lets run this and prepare Cloudflare and our Domain next. replace the 111's with your IP address. This is not locked down at all, but I don't have anything on this wallet, so there is nothing to see here. The initial genesis decode will take at least 10 minutes, so wait for this to finish and you will see the sync. Sync as of right now took about 24 hours. I am running this in the background using screen. screen -S go-opera ./opera --genesis ~/mainnet.g --nat extip: --nousb --http --http.vhosts="*" --http.corsdomain="*" --ws --ws.origins="*" --http.api="ftm,eth,debug,admin,web3,personal,net,txpool,sfc" Setup cloudflare with TLS/SSL. Make a subdomain with an A record pointing to your IP address. Go to SSL/TLS -> Origin Server -> Create Certificate and either use the default or like I did, specifiy the full subdomain. Here I am showing example.denarius.pro for the example. Click Next. I created a certificate for domain like rpc.denarius.pro and click Next and then copy the info to here Insert Origin Certificate into a cert.pem sudo nano /etc/ssl/certs/cert.pem Insert Private Key into key.pem sudo nano /etc/ssl/private/key.pem Install nginx sudo apt install nginx I am lazy so just use default file to edit sudo nano /etc/nginx//sites-available/default You want something like this for https and web socket in the default file server { listen 80; listen [::]:80; server_name rpc.denarius.pro; return 302 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl http2; ssl on; ssl_certificate /etc/ssl/certs/cert.pem; ssl_certificate_key /etc/ssl/private/key.pem; location ^~ /ws { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass; } location ^~ / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass; } } Restart nginx sudo nginx -s reload Load up metamask and point a new network to your new domain like https://rpc.denarius.pro, chainID 250, Symbol 250 and you are good to go.
  7. How to Stake Fantom and mint Synthetics to Mint more Fantom to Stake Use caution and common sense for staking and borrowing against all of this stuff to keep staking over and over. I came across some posts saying to keep the C-Ratio above 600% so lets be on the safe side and stick with a number above 600%. Price fluctuates so use caution and know its possible to get locked out of the account if everything gets rekt. But does it matter if this goes to 0 then? I have no idea, so with all that in mind lets get to staking the Fantom. You might want to read this a few times to see what's going on. Have some balance in FTM. Needs more than 2, so go get a nice stack of FTM from somewhere. I am screenshotting the whole thing so its easier to follow. Go to the Staking tab and click + Add Delegation Pick an amount and keep 2 FTM always on hand. I have 20 in this wallet and will choose 15. Then select a validator. Choose your validator. For now lets go with the one with the most FTM staking and then click Select. Click Continue to delegate. Then click Delegate. Click continue after verifying. Lock Delegation and this is where you choose minimum of 14 days and maximum of 131 days for this lock. If you unlock early you will burn your rewards. So choose 14 days if you want to just test this out. Lets lock until July 4th. Slide for days and click Ok, lock Click Lock Delegation is successful and click Continue. Mint sFTM to start the synthetic part to go into fUSD. Click Submit Transaction Sent, click Continue Go to the Defi tab to start fMint to mint fUSD Click Lock Collateral Click the wFTM and change to sFTM Drag the slider for all of the sFTM and click Submit. Click submit Click Submit again Success, click Close Go back to the fMINT tab and click Mint Synths This is the important step. Move the slider so you stay above C-Ratio 500% to earn wFTM on this fUSD. 600% has been hinted at so lets use 610% to be on the safe side. You don't want to drop below 300% for your C-Ratio. Click submit. Click submit, this part is either slow or takes a while. So just wait, if you get an error try again, but seems like during writing this guide its taking more than 5 minutes on this step. An example of when it glitches out and I get stuck and why I have been waiting to write this guide. And of course won't get further. I will switch to another address so this guide exists until the congestion calms down. Note I am switching wallets here so numbers won't match above. But should get the idea of what's going on next. Take note, the fUSD sitting in the wallet now is earning wFTM also as long as the C-Ratio stays above 500%. You are now minting FTM from the staking delegation and wFTM from the fUSD minting. Once you show fUSD minted go to the fUNI tab and select the bottom token as fUSD and click the arrow to swap the trade around. Select token as fUSD Type in the amount of fUSD or click Max, then click Swap. Continue to Next Step Confirm Swap and click Submit Success, click Continue We can now play with wFTM. I am just swapping wFTM into FTM and restaking again. And then minting sFTM and repeating this whole guide over and over. You can also go long and short with this borrowing part. Go back to the Defi tab and click fSwap Click the arrow to swap because I want wFTM to FTM I also want my whole FTM so I slide to 100%, careful here. You are borrowing FTM based on the loaned fUSD. Click submit Click continue You now have some extra FTM. At this point use your imagination. What I did was go back to staking and delegate this new amount and do all of this over and over again. Dangerous? Maybe, but I look at this as the Yolo chain.
  8. How to pull Binance API with USDT as the price and BTC as the playing part underneath, example for FTM. const Discord = require('discord.js'); const fetch = require('node-fetch'); const config = require("./config.json"); var binanceApi = "https://api.binance.com/api/v3/ticker/price?symbol=FTMUSDT" var binanceApiBTC = "https://api.binance.com/api/v3/ticker/price?symbol=FTMBTC" let refreshint = 5000; function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); } const client = new Discord.Client(); client.on('ready', async () => { client.user.setActivity('binanceUSDT'); const GUILD_ID = client.guilds.cache.map(guild => guild.id); const guild = await client.guilds.fetch(GUILD_ID[0]); const guildt = await client.guilds.fetch(GUILD_ID[1]); console.log('Bot is connected...'); setInterval(async function(){ //Fetch the binanceApi FTM/USDT fetch(binanceApi) .then(function (data) { if (data.status !== 200) { console.log('Looks like there was a FTM problem. Status Code: ', data.status); return; } data.json().then(function (data) { // Log the data to the console, Total balance of Token console.log(data.price); var coinPrice = "FTM $" + data.price guild.me.setNickname(coinPrice); guildt.me.setNickname(coinPrice); // var binanceApiBtc = "https://api.binance.com/api/v3/ticker/price?symbol=FTMBTC" // return fetch(binanceApiBtc); }); } ) .catch(function (e) { console.log("Error pulling FTM price data:", e); }) //Fetch the binanceApi FTM/BTC fetch(binanceApiBTC) .then(function (data) { if (data.status !== 200) { console.log('Looks like there was a BTC problem. Status Code: ', data.status); return; } data.json().then(function (data) { // Log the data to the console, Total balance of Token var coinBtc = "BTC " + data.price client.user.setActivity(coinBtc); console.log(coinBtc); }); } ) .catch(function (e) { console.log("Error pulling BTC price data:", e); }) }, refreshint) }); client.login(config.BOT_TOKEN);
  9. To add some info to underneath the name try replacing these lines setInterval(async function(){ fetch(chainzApi) .then(function (response) { // Get a JSON object from the response // This is a weird quirk of Fetch return response.json(); }).then(function (data) { // Log the data to the console, Total balance of Token console.log(data); var blockHeight = "Height: " + data guild.me.setNickname(blockHeight); var coinexplorerFS = "https://www.coinexplorer.net/api/v1/D/masternode/count " return fetch(coinexplorerFS); }).then(function (response) { // Get a JSON object from the response return response.json(); }).then(function (data) { var fsCount = "FS " + data.result.total client.user.setActivity(fsCount); }) }, 3000);
  10. A basic example of a Discord.js bot that can autoupdate every 5 seconds based on an API using fetch. Install nodejs and some packages. Linux x64 or ARM, example below is 64-bit. wget https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-x64.tar.xz tar xvf node-v16.0.0-linux-x64.tar.xz cd node-v16.0.0-linux-x64/ sudo cp -R bin/* /usr/bin/ sudo cp -R lib/* /usr/lib/ npm install discord.js npm install node-fetch blockheight.js https://gist.github.com/buzzkillb/63a66f27ff65c6dd880a6c3eae740602 //npm install discord.js node-fetch //get blockheight from Chainz CryptoID and update Bots Name as Blockheight const Discord = require('discord.js'); const fetch = require('node-fetch'); const config = require("./config.json"); var chainzApi = "https://chainz.cryptoid.info/d/api.dws?q=getblockcount" const client = new Discord.Client(); client.on('ready', async () => { client.user.setActivity('denarius.io'); const GUILD_ID = client.guilds.cache.map(guild => guild.id); const guild = await client.guilds.fetch(GUILD_ID); console.log('Bot is connected...'); setInterval(async function(){ fetch(chainzApi) .then(function (response) { // Get a JSON object from the response // This is a weird quirk of Fetch return response.json(); }).then(function (data) { // Log the data to the console, block height console.log(data); var blockHeight = "Height: " + data guild.me.setNickname(blockHeight); }) }, 5000); }); client.login(config.BOT_TOKEN); config.json { "BOT_TOKEN": "DISCORDGENERATEDTOKENGOESHERE" } How to add the bot to a server and get your BOT_TOKEN Authorizing Discord User Visit https://discord.com/developers/applications and create 'New Application'. Set a bot name like BlockHead On the page that follows, set the account name and save. Then click Bot Create a Bot account and Save. Click 'Copy' on the Token; this is the API Key you use in the bot script Visit the OAuth2 tab. Under Scopes, select 'bot' The resulting URL is what you (or anyone) use to add your bot instance to a server.
  11. An example of using the public key with Denarius NVS. Add the public key to be more public, go to your Denarius QT Wallet and at the debug console type name_new ssh:buzzkillb "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRELbQ3izu+ckrwPgKTdmck89xrOaSv1Kp0vY1ShWYbjyALOvEL9Okd23bjzCcS3h/0t5R5HZs3Ej0cOpupa/Ls4E6DwFs7hC6bMjSdDu/I0490ONH6LOYWE5T5GCuuPNmMRBVX7mmCAXzUIkBFvimzspAIY+w2pkQ2bk+dOC+IMG70DsDPv54+LBm7IpgWth+wZLppacVYMgpARX38ounHU8pxEOxEodf5Vzx+jCxX7swYBM0Ujw+5+Kg+8c00oWB/6MM1mIdTepqH4hRIkw0AVMhEFqnC/qOrr4aZ9e8Bd5B27sTKwPlmX0oe7Uw46G72MZ6/bLc8qgjjIeIOzUj cardno:000613493497" 9999
  12. How to create an SSH key on a Yubikey 5 using GPG on Ubuntu 20.04. Yubikey 5c https://amzn.to/3dFvg4A Yubikey 5 nfc https://amzn.to/3gr4UoJ I am using VM Player as the test subject. Edit the .vmx file if you are using this and add these 3 lines to the end to passthrough the Yubikey. Restart vmplayer and passthrough. usb.generic.allowHID = "TRUE" usb.generic.allowLastHID = "TRUE" usb.quirks.device0 = "0x1050:0x0407 allow" Reference: https://www.engineerbetter.com/blog/yubikey-ssh/ I just installed all the yubikey stuff, you can do these 1 by 1 for what you need or just throw them all in. sudo apt install opensc-pkcs11 yubikey-personalization scdaemon libpam-u2f libpam-yubico yubikey-personalization-gui yubikey-manager Use GPG agent cat <<EOF >> ~/.bashrc export GPG_TTY=$(tty) gpg-connect-agent updatestartuptty /bye unset SSH_AGENT_PID export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) EOF then . ~/.bashrc To check if the Yubikey is being seen by Ubuntu type gpg --card-status If you want to change your pins, this is the command gpg --change-pin I would test the steps out before editting pins and messing around with more stuff, lets get to editing gpg --card-edit admin generate Make off-card backup of encryption key? N I chose to expire my key in 3 years so I typed 3y Is this correct? Y Fill in a name and email address. Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O quit Check your ssh key ssh-add -L and it spits the SSH key out ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRELbQ3izu+ckrwPgKTdmck89xrOaSv1Kp0vY1ShWYbjyALOvEL9Okd23bjzCcS3h/0t5R5HZs3Ej0cOpupa/Ls4E6DwFs7hC6bMjSdDu/I0490ONH6LOYWE5T5GCuuPNmMRBVX7mmCAXzUIkBFvimzspAIY+w2pkQ2bk+dOC+IMG70DsDPv54+LBm7IpgWth+wZLppacVYMgpARX38ounHU8pxEOxEodf5Vzx+jCxX7swYBM0Ujw+5+Kg+8c00oWB/6MM1mIdTepqH4hRIkw0AVMhEFqnC/qOrr4aZ9e8Bd5B27sTKwPlmX0oe7Uw46G72MZ6/bLc8qgjjIeIOzUj cardno:000613493497 To move the yubikey to another VM I did the edit vmx file, passed the yubikey through to vmplayer and then sudo apt install opensc-pkcs11 yubikey-personalization scdaemon libpam-u2f libpam-yubico yubikey-personalization-gui yubikey-manager Use GPG agent cat <<EOF >> ~/.bashrc export GPG_TTY=$(tty) gpg-connect-agent updatestartuptty /bye unset SSH_AGENT_PID export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) EOF then . ~/.bashrc And then check the key ssh-add -L
  13. Future how to run multiple snap daemons and onion on a single VPS
  14. Denarius Snap Daemon FortunaStake Guide [Masternode TOR] How to setup a Denarius FortunaStake with TOR and Snap daemon. Get a VPS with Ubuntu 20.04 to setup the FortunaStake side, this holds no private keys or collateral https://my.racknerd.com/index.php?rp=/store/special-promos This is a good provider, you want more than 2gb ram setup First setup the collateral wallet with 5000 as that will take 500 confirms before you can start the FortunaStake. Plenty of time to setup the VPS side. If you have good 24/7 internet you can run the VPS part at home on a Raspberry Pi4 or some low wattage computer with more than 2gb ram. #Setup Collateral Wallet This will take 500 confirms before being able to start, so do the send first, then read through the guide. Send exactly 5000 D to an address and give that address a label like FS01. Script for VPS Portion Located Here This will pull master branch and compile the latest wallet. And add a cronjob to restart wallet every hour to make sure things stay in sync. https://github.com/buzzkillb/d-fortunastake QT Wallet After sending 5000 D to a labelled address, we need the following; transaction hash and index of the 5000 send, fortunastake private key, and your VPS IP address. FS01 VPSIPADDRESS:9999 FORTUNASTAKEPRIVKEY TRANSACTIONHASH INDEXNUMBER Sample fortunastake.conf FS01 6J8tAUsVhXBgfdeewqsdghySWEQEeb4XGSC251sM7bYQgEXh7 f08d926f92cc4c65321344828f6394f41121903502459ffde4ef7aef39e6392b 0 fortunastake private key fortunastake genkey fortunastake transaction hash and id fortunastake outputs VPS of your ip should be somewhat obvious, but this guide will instead use TOR onion address down below. You can pick a clearnet or onion address for this. After creating your fortunastake.conf, save and restart the QT wallet. Sample QT denarius.conf fsconflock=1 staking=1 Now that address has locked the 5000 D collateral. #Setup VPS Side #setup denarius user adduser denarius #input strong password usermod -aG sudo denarius Relogin to vps as denarius user #update Ubuntu sudo apt update sudo apt upgrade #Install fail2ban sudo apt install fail2ban #Install SNAP Daemon sudo apt install snapd sudo snap install denarius #Install TOR sudo apt install tor #setup TOR port for FortunaStake sudo nano /etc/tor/torrc at top add these new lines HiddenServiceDir /var/lib/tor/hidden_denarius/ HiddenServiceVersion 2 HiddenServicePort 33369 HiddenServicePort 9999 #restart tor service sudo service tor restart #get onion hidden service address, example -> youronionaddress.onion sudo cat /var/lib/tor/hidden_denarius/hostname #save this for denarius.conf #setup chaindata cd ~ mkdir -p ~/snap/denarius/common/.denarius cd ~/snap/denarius/common/.denarius sudo apt install unzip wget https://denarii.cloud/chaindata.zip unzip chaindata.zip #Run denarius daemon to prepopulate the denarius.conf in this directory and start syncing from chaindata block height denarius.daemon #give it about 5 minutes to load and stop daemon to reconfigure denarius.conf denarius.daemon stop #update denarius.conf with the settings below nano denarius.conf Add below port=9999 fortunastake=1 listen=1 externalip=youronionaddress.onion fortunastakeaddr=youronionaddress.onion:9999 fortunastakeprivkey=yourfortunastakegenkey tor= #Start your VPS Snap Daemon denarius.daemon #Start FortunaStake from your QT Collateral Wallet #go to debug console fortunastake start-alias FS01 #check this is started on the VPS daemon cd ~/snap/denarius/common/.denarius tail -f debug.log Welcome to collecting 33% of block rewards randomly through the day
  15. How to run an XFCE Desktop GUI on a headless Proxmox Ubuntu 20.04 Container through RDP. Trying out Snap Denarius QT as an example. Taken from https://www.reddit.com/r/Proxmox/comments/hzg2vr/how_to_create_a_template_for_lxc_ubuntu_desktop/ sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils Select lightdm when asked which desktop. sudo apt install xrdp update-alternatives --set x-session-manager /usr/bin/xfce4-session Now use Remote Desktop to RDP into the IP address. Easy enough, now you can lock it down if doing something outside of trying to set this up.
  • Create New...