Jump to content


Popular Content

Showing content with the highest reputation since 01/26/2020 in all areas

  1. 2 points
    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.
  2. 2 points
    I found this thread extremely interesting, and I wanted to add onto what InoDenarri has put together which I think certainly holds water. The quote above, I found the recording which you can see here: (it starts at 4:20 right at the end of the video and you can clearly hear Kim say Denarii) What is also very interesting about this prophecy that InoDenarii pointed out is this quote: I spoke recently about the Dow at 20,000 points. All of this connects to a massive breakthrough with regard to the DINAR. At the end of the video you see that Kim says "Denarii, I couldn't even relate it to Iraq". As InoDenarii says, I think he had much influence from his supporters thinking it was the Dinar, but even Kim says he couldn't relate Denarii to Iraq, much means, he didn't get the feeling that Dinarii was linked to the Dinar. The third thing I wanted to point out is around this review of Denarius from a reviewer through Medium and the breakthrough that Kim Clement spoke about. The review is here: https://medium.com/@Luigi1010101/a-decentralized-powerhouse-waiting-to-take-over-7ffe695b1e2 This review is VERY interesting along with the breakthrough that Kim spoke about. First of all reading the review and around the Roadmap part of the review, there isn't one, which means the team aren't stuck with following the herd, it allows them to get creative just like the review quoted: "I have seen that things get done, and I would rather invest in a cryptocurrency with real development then one with a fancy roadmap and no real development. In the Denarius team, there is a lot of creativity and innovation going on. This part makes structure and a “roadmap” difficult. There is a perfectly rational reason behind not being bound to a timeline. They do not want to kill their creativity." So does this mean that because there is no roadmap, the team can explore, create and experiment something unique to the crypto space that is a breakthrough no one was expecting? Something much bigger and better that no one has thought about?
  3. 2 points
    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.
  4. 2 points
    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.
  5. 1 point
    https://denarii.cloud is now fully served through IPFS
  6. 1 point
    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
  7. 1 point
    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
  8. 1 point
    How to setup a NOMP mining pool for Denarius. This is a basic guide to get someone headed in the right direction to getting a pool to work. I can run 2 coins on a $5 Vultr VPS with small hashrate, so far. Update Ubuntu 16.04 apt-get update apt-get dist-upgrade Create a swap file dd if=/dev/zero of=/mnt/myswap.swap bs=1M count=4000 mkswap /mnt/myswap.swap swapon /mnt/myswap.swap Create swap file to keep this persistent nano /etc/fstab Insert at the bottom of the file /mnt/myswap.swap none swap sw 0 0 Install required packages apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server add-apt-repository ppa:bitcoin/bitcoin apt-get update apt-get install libdb4.8-dev libdb4.8++-dev curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh source ~/.profile nvm install 0.10.25 nvm use 0.10.25 Make a new user since you aren't going to use root for this. dduser usernameyourwant Give new user sudo access adduser usernameyousetup sudo Reboot and login as the new user reboot Denarius Wallet Daemon Setup Get dependencies apt-get --assume-yes install git unzip build-essential libssl-dev libdb++-dev libboost-all-dev libcrypto++-dev libqrencode-dev libminiupnpc-dev libgmp-dev libgmp3-dev autoconf libevent-dev autogen automake libtool Compile Denarius Daemon git clone https://github.com/carsenk/denarius cd denarius git checkout master cd src make -f makefile.unix sudo mv ~/denarius/src/denariusd /usr/local/bin/denariusd Get chaindata and extract to .denarius folder apt-get -y install unzip cd ~/.denarius rm -rf database txleveldb smsgDB wget https://denarii.cloud/chaindata.zip unzip chaindata.zip Edit denarius.conf nano ~/.denarius/denarius.conf Insert this into denarius.conf rpcuser=denariusrpc rpcpassword=USERANDOMPASSWORDHERE!!! gen=0 server=1 listen=1 rpcallowip= rpcport=32369 daemon=1 Run the wallet so its syncing while you do this sudo denariusd --daemon Get a DNR address so the pool has a wallet. Save this address for a step below. Address goes into pool_configs/denarius.json eventually. denariusd getnewaddress Mining Pool Setup cd git clone https://github.com/buzzkillb/node-open-mining-portal nomp cd nomp sudo npm update You want to create a config.json in the main nomp directory. Replace your IP address and take note of changing port 8080 to some random port. Sample config.json https://pastebin.com/JFp5ZKq6 Create the Coin denarius.json under nomp/coins Sample denarius.json https://pastebin.com/XjiXVLCM Create the pool config for denarius under nomp/pool_configs. Replace DNRPOOLWALLETDAEMONADDRESS with address used from Denarius wallet daemon getnewaddress from above. Change DNRFEEPAYMENTADDRESS to your fee payment address and 1.0 is 1% fee. Use RPC user and pass that you have in your denarius.conf. Change ports and difficulty for your needs. Sample denarius.json https://pastebin.com/23F9Cfwq Starting the pool. cd cd nomp npm install [email protected] node init.js Now go your your IPADDRESS:PORT in your web browser and get to mining on your pool. I also disabled root access, password logins and only allow SSH key login to the new user.
  9. 1 point
    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/');
  10. 1 point
    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([]); }
  11. 1 point
    I adjusted the twitter card to also link to an IPFS image, and this is the final outcome. https://ipfs.io/ipfs/QmcocQitHWV1zNA3Hj3Ve225KnSUwzhh9U5GDCdqPBPxR7
  • Create New...