Categories
blog-entry

How to update paper minecraft server at command line in linux/ubuntu

You’ll need wget, so make sure it’s installed.

sudo apt install wget

Navigate to your minecraft server directory (modify this command as needed!)

cd ~/minecraft

Create a shell script with nano, naming the file “update.sh”

nano update.sh

Press <Enter> and when nano opens, paste the following code

#/bin/bash
paperver=1.16.5

wget -v https://papermc.io/api/v1/paper/$paperver/latest/download -O server.jar

Make sure the second line is correct. You want it to match the version of your game. In my case, it’s 1.16.5, but you can choose any released version.

Also note, this script will save the update as “server.jar”. You can change this as needed to fit your start script.

When you’re done, press <Control> + O to save the file

then <Control> + X to exit nano.

One more step — make the file executable!

chmod +x update.sh

Now you’re finished. You can add this to your cron jobs for a regular update, or insert it into your startup script (recommended), or call it manually whenever you want.

to execute, simply type

./update.sh

If you have any trouble operating your paper minecraft server and can’t find the solution online, reach out to me and I’ll help you. I’m trying to give back to the community as they seem to be lacking enough experts. Which is fine, as minecraft is a game for kids who are often just now learning how to code! I was just like you at one point.

Categories
blog-entry

how to decentralize TLD registration

So basically move the root zone file out of the hands of the government and into a P2P network. This can be done with a small daemon that interfaces with:

  • bind9
  • bitcoind
  • ipfs

Take the root zone file as it is today, and basically “snapshot it”. Make this snapshot your template root zone file. The daemon will add and remove new lines to it.

Registration information will be stored in bitcoin. Anyone can register a new TLD. You simply have to post a bitcoin transaction linking to the information.

The registration will look like this:

“<Valid bitcoin transaction><one input><output to OP_RETURN><append the following string “tld:SHA256hash”>”

Benefits of using bitcoin:

  • It’s the most durable
  • It will protect against bloat, because the block size is limited. Only few people in the world will be able to register TLDs. While at the same time, anyone can do it, as long as you can cover the transaction fee.
  • It supports a already good protocol. The more transactions in the bitcoin network, the higher the fee reaches, the more power the miners have to secure the ledger.

Now, how does the daemon register a TLD after it detects a valid transaction in bitcoin?

  1. It takes the SHA256 hash and reaches out to an IPFS gateway or node to retrieve a valid bind9 zone file.
  2. It checks that the zone file adds a TLD that is not already registered.
  3. If the TLD is already registered, then it checks that the new transaction is from the same input address. If it’s from the same input, then it must be the same person registering, and the new zone file is used, the previous zone file is erased.
  4. For every transaction detected, the registration time of one year is added. So to register a TLD for 100 years, you’ll need to post 100 transactions to bitcoin.
  5. Only the zone file of the most recent transaction is used. If you need to change your DNS information for the TLD, then you must post a new bitcoin transaction.

IPFS is used blindly. You don’t need to trust anything, because the integrity of the file served is verified by the SHA256 hash that was used to grab it. You can use a gateway (such as cloudflare’s) or a full node if you need ultimate trust. The technology behind IFPS is imperfect, but growing. What happens behind the scenes is not important, as all that matters is you demand a hash, and a file is returned that produces that hash. Nothing else about the IPFS technology matters.

With each new TLD registered or updated, you add it to the root zone file that we “snapshotted” at the start, and thus, we have the new, decentralized file. Use this file in bind9 to create your own DNS resolver. Point your computers to this resolver.

Eventually, demand that servers like 8.8.8.8 and 1.1.1.1 also use the decentralized file. Ask people to host their own public resolvers in the meantime. With each new oppression that happens (like SOPA and PIPA), create publicity and drama about the centralization of the root zone file. Ignore everything else and draw public attention to nothing else but the root file. Eventually, it’ll hit a critical mass and become common parlance in the nerd culture, then eventually spread out to popular culture.

How to write the daemon:

  • Use the API in bitcoind to detect each new confirmed block
  • Take the current block height and subtract 100
  • Search that block (the 100th most recently confirmed) for valid tld:transactions
  • Verify they are valid by:
    • Making sure it matches the transaction syntax above, using OP_RETURN and a string with “tld:SHA256hash”
    • Retrieve the file from IPFS and verify it with the hash
    • Verify it’s a valid bind9 file
    • Verify it’s not registered
    • If it is registered, then verify it’s the same person doing it
  • If the verifications pass, then take the new zone file and append it to the root zone file (erasing previous version of the TLD if exists)
  • Reload bind9

That is it. Its very simple, but incredibly strong. It’s strong enough and useful enough to replace the current system of hosting the root file on military bases (etc) under central control.


Some notes:

Bloat

  • Bloat is controlled by the bitcoin network. Anyone can register, but they need to pay a transaction fee. Each transaction only gains 1 year of registration. So realistically, a new TLD would need to pay for 100 transactions to have a century of registration. If each bitcoin transaction costs $1000, then a century would cost $100,000, a similar price to what we’re doing today.

Bitcoin network fees

  • Soon, bitcoin will only use the blockchain as a courthouse, rather than a ledger. All financial transactions will descend onto the lightning network. The only transactions that ever land on the blockchain at that point will be settlement transactions due to either a rogue or failing node in the lightning network. In this sense, the blockchain will no longer be a ledger, but a courthouse, simply settling troubled transactions that happen in the lightning network. The fees will be very high, over 1000 dollars, and paid for by the failures. This fee will apply also to anyone who wants to register a TLD.
  • The higher the fee, the better. Bitcoin will thrive under high fees. It will mean the blockchain will be as secure as humanly possible because the fees pay the miners who secure the bitcoin protocol.

Please contact me with any criticism or comments.

Categories
blog-entry

oops

North Dakota Access Pipeline Protests 北达科他州接入管道抗议 Ferguson Riots 弗格森暴动 2017 St. Louis protests2017年圣路易斯抗议活动 Nuclear testing at Bikini Atoll 比基尼环礁的核试验 Unite the Right rally 团结右集会 Charlotte riots 夏洛特暴动 Attack on the Sui-ho Dam 袭击穗河水坝 Milwaukee riots 密尔沃基骚乱 Shooting of Alton Sterling and Philando Castile 奥尔顿·斯特林和菲兰多·卡斯蒂利亚的射击 Occupation of the Malheur NationalWildlife Refuge Malheur国家野生动物保护区的占领 death of Freddie Gray 弗雷迪·格雷的死 Shooting of Michael Brown迈克尔·布朗的拍摄 death of Eric Garner, Oakland California 奥克兰奥克兰市埃里克·加纳(Eric Garner)逝世 Operation Condor 神鹰行动 Occupy WallStreet 占领华尔街 My Lai Massacre 我的大屠杀 St. Petersburg, Florida 佛罗里达州圣彼得堡 Kandahar Massacre 坎大哈屠杀 1992Washington Heights riots 1992年华盛顿高地暴动 No Gun Ri Massacre 无枪杀案 L.A. Rodney King riots 洛杉矶罗德尼·金暴动 1979 Greensboro Massacre 1979年格林斯伯勒大屠杀 Vietnam War 越南战争 Kent State shootings肯特州枪击案 Bombing of Tokyo 轰炸东京 San Francisco Police Department Park Station bombing 旧金山警察局公园站爆炸案 Assassination of MartinLuther King, Jr. 小马丁·路德·金遭暗杀。 Long Hot Summer of 1967 1967年炎热的夏天 Bagram 巴格拉姆 Selma to Montgomery marches 塞尔玛到蒙哥马利游行 Highway of Death 死亡之路 Ax Handle Saturday 星期六斧头 Battle of Evarts 埃瓦茨战役 Battle ofBlair Mountain 布莱尔山战役 McCarthyism 麦卡锡主义 Red Summer 红色夏天 Rock Springs massacre 岩泉大屠杀 Pottawatomie massacre 盆大屠杀 Jeju uprising 济州起义 Colfaxmassacre 科尔法克斯大屠杀 Reading Railroad massacre 阅读铁路大屠杀 Rock Springs massacre