Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won

  • Feedback


buzzkillb last won the day on February 26

buzzkillb had the most liked content!

Community Reputation

222 Excellent


About buzzkillb

  • Rank
    Senior Denarian

Personal Information

  • D Address

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. https://denarii.cloud is now fully served through IPFS
  2. moving chaindata to its own host https://denarii.cloud
  3. chaindata is now on https://denarii.cloud running over IPFS
  4. an experimental feature to try getting ipns working faster is, try adding to your service file above too ipfs daemon --enable-namesys-pubsub source: https://blog.ipfs.io/34-go-ipfs-0.4.14#ipns-improvements to see if it worked run this command ipfs pubsub ls
  5. To take this a step further lets add TLS which requires nginx and letsencrypt certbot. remove the TXT and CNAME records from above and create A, AAAA, and TXT records for the example subdomain. Install nginx apt-get update apt-get install nginx Change the default config nano /etc/nginx/sites-available/default to this server { server_name ipfs.example.com; server_tokens off; listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; location / { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } test the config nginx -t Install certbot add-apt-repository ppa:certbot/certbot apt-get update apt-get install python-certbot-nginx run certbot certbot --nginx -d ipfs.example.com Say yes to always use 443 or https, whatever it says, you want YES. reload nginx systemctl reload nginx Lets setup some automation, first to automate the certbot renewal. crontab -e 15 3 * * * /usr/bin/certbot renew --quiet Create a service to restart IPFS on reboot sudo nano /etc/systemd/system/ipfs.service edit to this [Unit] Description=IPFS daemon After=network.target [Service] ### Uncomment the following line for custom ipfs datastore location # Environment=IPFS_PATH=/path/to/your/ipfs/datastore ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub Restart=on-failure [Install] WantedBy=default.target star the service and enable on reboot systemctl start ipfs systemctl enable ipfs Now the website has TLS and fully served through IPFS. Come up with a way to automate this command and the ipns will automatically update. TMP=`ipfs add -r /home/user/chaindata/ | awk 'END{printf $2}'` && ipfs name publish $TMP
  6. As a way to see if any features would be great to add to Jupiter Denarius IPFS uploader I figured why not create a website that can autoupdate on file changes and to the unsuspecting eye a typical user can't tell they are using an IPFS website. Example of what we are making as a test of full IPFS powah. First install IPFS, using ubuntu command line for this. https://docs.ipfs.io/guides/guides/install/ Download latest binary here https://dist.ipfs.io/#go-ipfs Open 2 terminals into your VPS or VM as eventually for this exercise we will run a daemon in 1 terminal and commands in the 2 terminal. Init IPFS and if in a datacenter (VPS) use the profile server flag. ipfs init --profile server This will give some information. I saved it to a text file because I had no idea if this is required for anything or not. Its not. in 1 terminal lets run the daemon ipfs daemon Make a folder like /home/user/test cd ~ mkdir test cd test put a file in there, anything, I am gonna get a block height that updates every so often wget https://pos.watch/height.txt create an index.html gonna use a quick sample so we use some javascript to read the height.txt file <html lang="en" > <head> <meta charset="UTF-8"> <title>Cool Test Site | Oh Yeah $D</title> <meta name="twitter:card" content="summary"> <meta name="twitter:url" content="http://api.pos.watch"> <meta name="twitter:title" content="Testing IPFS"> <meta name="twitter:description" content="Is Anyone Seeing Me?"> <meta name="twitter:image" content="https://i.imgur.com/lCvgFft.png?1"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-129064662-1"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <meta name="google-site-verification" content="Rzkn_bajLR1WONHcP8ob-oP1TWDTZisaYGzeze3Rfnw" /> <link rel="manifest" href="/site.webmanifest"> </head> <body> <div> FULL IPFS TEST: | Block Height: <span id="height"></span> | PEER ID: REPLACEMEAFTERTRYINGTHISOUT </div> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js'></script> <script type="text/javascript" src="./script.js?version=0.01337"></script> </body> </html> Create script.js so we have a javascript to read the file fetch('height.txt') .then(function(response) { return response.json(); }) .then(function(data) { if (data) $('#height').html(""); $("#height").append(data); window.blockheight = (data); }) .catch(function(err) { console.log(err); }); Now the magic sauce to automate this, change the folder path to your folder path TMP=`ipfs add -r /home/user/test/ | awk 'END{printf $2}'` && ipfs name publish $TMP What this does is it recursively adds the test directory and then reads the last hash line and publishes to your PEERID, example output below Published to QmdKLWPao7d5NZQC92s6TRMVBuBrHfCyNZhVXTKAU42kuN: /ipfs/QmXzYAPHsNLucHFUS1tg1FW9P1PiDyq16ar1tGAhmfW13H peerid is QmdKLWPao7d5NZQC92s6TRMVBuBrHfCyNZhVXTKAU42kuN Now how do we view this like a normal website? I am going to use namecheap for this sample. In my example the peerid resolves to ipns and is using dnslink. api is my subdomain for practicing purposes. Which once this all propogates we can now go to http://api.pos.watch I suspect Denarius can do some really cool things if the wallet had DNS and a few more options like peerid.
  7. To edit the coinbase from default nodestratum Change ~/nomp/node_modules/stratum-pool/lib/transactions.js around line 239 to var scriptSigPart2 = util.serializeString('/mining.cafe/');
  8. To get this to work on Denarius I changed these areas to comment them out ~/nomp/node_modules/stratum-pool/lib/blockTemplate.js around line 38 /** function getVoteData(){ if (!rpcData.masternode_payments) return new Buffer([]); return Buffer.concat( [util.varIntBuffer(rpcData.votes.length)].concat( rpcData.votes.map(function (vt) { return new Buffer(vt, 'hex'); }) ) ); } **/ and around line 110 // getVoteData(), OR replace getVoteData function with function getVoteData(){ return new Buffer([]); }
  9. To reverse PROXY this and use letsencrypt for easy TLS. Basically NOMP is using Port 8080 for web server which we will pass to port 80 using NGINX and then let certbot configure this to work on TLS port 443. https://eladnava.com/binding-nodejs-port-80-using-nginx/ sample how you edit above examples node file server { listen 80; server_name mining.cafe; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass ""; } } Then install letsencrypt on example -> Ubuntu 18.04 Bionic https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx When it asks to always use 443 say YES! and that's eet. Certbot does all the heavy lifting.
  10. Its very easy to setup the Denarius wallet daemon using SNAP on most Linux distributions, including even a 2GB or more ram Raspberry Pi4. Arch, CentOS, Debian, elementary, Fedora, KDE Neon, Kubuntu, Manjaro, Mint, openSUSE, Red Hat, and Ubuntu are just a few of the supported distros. I will assume you are running a single daemon on a VPS, first create directory as we want to download chaindata and unzip into the proper folder first. If you end up using parallels to install more than 1 snap daemon on your server, the directories would be like this and each need their own chaindata. ~/snap/denarius_1/common/.denarius ~/snap/denarius_2/common/.denarius ~/snap/denarius_3/common/.denarius Start creating the directory so we can grab chaindata for the unzip. If you are using a pi4 or similar ARM server, use the ARM download link. AMD64 - https://denarii.cloud/chaindata.zip ARM - https://denarii.cloud/pichaindata.zip mkdir ~/snap mkdir ~/snap/denarius mkdir ~/snap/denarius/common mkdir ~/snap/denarius/common/.denarius cd ~/snap/denarius/common/.denarius/ wget https://denarii.cloud/chaindata.zip unzip chaindata.zip rm chaindata.zip Pick your OS to install Denarius Daemon from Snap Page https://snapcraft.io/denarius Example Ubuntu sudo apt update sudo apt install snapd sudo snap install denarius Run Snap Daemon denarius.daemon this will auto generate a denarius.conf Stop Snap Daemon after about 60 seconds denarius.daemon stop Edit denarius.conf to add your privkey to denarius.conf and delete these 2 lines fortunastake=0 and fortunastakeaddr= nano denarius.conf fortunastakeprivkey=YOURFORTUNASTAKEGENKEYHERE Example denarius.conf rpcuser=5fWxpSAp rpcpassword=2uArAP0XQvL20a6GuqR5MnP rpcport=32369 port=33369 daemon=1 listen=1 server=1 fortunastakeprivkey=YOURFORTUNASTAKEGENKEYHERE addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode= addnode=[2001:bc8:47a8:2519::1] save -> ctrl+x yes Run Snap Daemon denarius.daemon To watch the debug.log as this syncs and to watch the enable happen tail -f debug.log For the 5000 D send please use the original guide for reference.
  11. Try compiling latest v3.3.9.7 branch. Syncing from block 0 might be fast enough where it will take a day or 2 on ARM now. Otherwise I found using chaindata and restarting the wallet a few times to get past the orphans works.
  12. I adjusted the twitter card to also link to an IPFS image, and this is the final outcome. https://ipfs.io/ipfs/QmcocQitHWV1zNA3Hj3Ve225KnSUwzhh9U5GDCdqPBPxR7
  13. How to build a basic censorship resistant website using in wallet Jupiter Upload to IPFS and then message that to someone all in wallet. From what I understand this will bypass the Chinese firewall. First download the wallet, Windows binary release located here https://github.com/carsenk/denarius/releases or compile from source. I am going to use the full features of the wallet for this example which does cost 0.001 Denarius per upload, but this can be done all for free. Start the wallet and go to Jupiter tab to upload your image, select Upload to IPFS and Pay 0.001 D to POD/Timestamp. The goal here is we are going to proof of data each upload to prove our images belong to us with an IPFS upload timestamp. The first line is the IPFS hash which is the link to our image. And the 2nd line is the timestamp of when the image was uploaded to IPFS. Create a text file to save these so its easier to remember. Our image is located here https://ipfs.io/ipfs/Qmci9khjndoearoPqpW6B6qfMWRe7rLnZ5BXdKYDaUhhRn and POD address is D82zkzEDgfHSuAmYjJ6LZbLb1W74YLPjM7 with a timestamp of upload. Also we will use the Proof of Data tab next to POD the image itself for a hash checksum that gets thrown into the Denarius blockchain. This will verify the authenticity of the file itself. Our POD Address for the image itself is DN7fo3bxDYNcREL7nKEWMDbEFbuqTdDLmA Once that is uploaded we want to save the full link to put into our webpage. Also save the POD address so we can include that into our webpage as proof. Create an index.html which we will post the image with a link to the Proof of Data (POD) address in a block explorer. <html> <head> <title>Denarius Fully Decentralize Website Example</title> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="CoronaVirus Death Tracker 2020"> <meta name="twitter:description" content="Cant Censor Us You Assholes"> <meta name="twitter:image" content="https://i.imgur.com/cl0MchI.png"> </head> <body> using <a href="https://github.com/carsenk/denarius/releases">Denarius</a> Jupiter IPFS Uploader<br> <center> <a href="https://denarius.io/"> <img src="https://ipfs.io/ipfs/Qmci9khjndoearoPqpW6B6qfMWRe7rLnZ5BXdKYDaUhhRn" alt="Denarius Logo"> </a> </center> <table style="border:1px solid black;margin-left:auto;margin-right:auto;"> <tr> <th>IPFS Image Upload Proofs</th> </tr> <tr> <td style="text-align:center">IPFS timestamp: Qmci9khjndoearoPqpW6B6qfMWRe7rLnZ5BXdKYDaUhhRn<td> </tr> <tr> <td style="text-align:center">POD Timestamp: <a href="https://www.coinexplorer.net/D/address/D82zkzEDgfHSuAmYjJ6LZbLb1W74YLPjM7">D82zkzEDgfHSuAmYjJ6LZbLb1W74YLPjM7</a><td> </tr> <tr> <td style="text-align:center">IPFS Image Link <a href="https://ipfs.io/ipfs/Qmci9khjndoearoPqpW6B6qfMWRe7rLnZ5BXdKYDaUhhRn"</a>Qmci9khjndoearoPqpW6B6qfMWRe7rLnZ5BXdKYDaUhhRn<td> </tr> <tr> <td style="text-align:center">POD of Image: <a href="https://www.coinexplorer.net/D/address/DN7fo3bxDYNcREL7nKEWMDbEFbuqTdDLmA">DN7fo3bxDYNcREL7nKEWMDbEFbuqTdDLmA</a><td> </tr> </table> <br> <a href="https://denariustalk.org/index.php?/topic/339-how-to-build-a-completely-censorship-resistant-web-page-with-denarius-and-ipfs/">Tutorial Here</a> </html> Save index.html and go back to the Proof of Data tab to hash checksum our index.html. Then upload to IPFS using POD again. The reason to do this is we will next message our friend to prove this is also my upload, which is giving a timestamp of the file itself and a checksum address of index.html which means this can't be faked and is authentic. Upload the final index.html to IPFS and POD this. Quickly we can use the infura or cloudflare links, or use the default IPFS and type this in ourselves, 3 examples below using same file hash we just uploaded. https://ipfs.infura.io/ipfs/QmXAJ1o76XtmcQERcMYfaA6uWJNrgWmhviRCTZ6vLEjJBB https://cloudflare-ipfs.com/ipfs/QmXAJ1o76XtmcQERcMYfaA6uWJNrgWmhviRCTZ6vLEjJBB https://ipfs.io/ipfs/QmXAJ1o76XtmcQERcMYfaA6uWJNrgWmhviRCTZ6vLEjJBB This POD address from above image DD6xmZTTH6TgdD8sn3tqB5MnWsS4xZhSb6 we can use in our message to someone. Go to the Messages tab. I sent to myself because I need more Denarius friends. Checking my inbox I can see I got something. And there is my message delivered. Go think of new ways you can use this to create censorship resistant apps as the Denarius command line daemon also allows all of these commands.
  14. Lets say you want to get around a firewall. Load up the Denarius QT from github. If you can't get onto github let someone know to release the binary somewhere easy to grab from like IPFS itself. Upload your File using the QT Wallet and wait for the link to propogate. You now have a link like this https://ipfs.infura.io/ipfs/Qmd6LFDvjZBJjQ5zh3fjBhyZXM5XsWAaVyPdJZ9vhNKSs5 Go to the messenger tab and send your message to another Denarius wallet address. I sent to myself in the wallet, but you get the idea.
  15. How to compile daemon in Ubuntu 19.10 https://github.com/carsenk/denarius/issues/256
  • Create New...