<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Knowledge Archives - Follow My Vote</title>
	<atom:link href="https://followmyvote.com/category/knowledge/feed/" rel="self" type="application/rss+xml" />
	<link>https://followmyvote.com/category/knowledge/</link>
	<description>Blockchain Voting Pioneers</description>
	<lastBuildDate>Wed, 11 Dec 2024 20:38:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://followmyvote.com/wp-content/uploads/2013/08/cropped-Follow-My-Vote-T-shirt-White-on-Black-Front-Logo-1-150x150.jpg</url>
	<title>Knowledge Archives - Follow My Vote</title>
	<link>https://followmyvote.com/category/knowledge/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress Staging Website on the Same Domain</title>
		<link>https://followmyvote.com/wordpress-staging-website-on-the-same-domain/</link>
					<comments>https://followmyvote.com/wordpress-staging-website-on-the-same-domain/#respond</comments>
		
		<dc:creator><![CDATA[Nathaniel Hourt]]></dc:creator>
		<pubDate>Wed, 11 Dec 2024 20:38:57 +0000</pubDate>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Staging Website]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=63178</guid>

					<description><![CDATA[<p>The Staging Dilemma Here at Follow My Vote, we rely on WordPress to host our website. We are an online company, so this website is our public face and we strive to keep it informative and attractive to guests. But that isn&#8217;t always easy. In order to keep a WordPress website secure and reliable, both [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/wordpress-staging-website-on-the-same-domain/">WordPress Staging Website on the Same Domain</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The Staging Dilemma</h2>



<p>Here at Follow My Vote, we rely on WordPress to host our website. We are an online company, so this website is our public face and we strive to keep it informative and attractive to guests. But that isn&#8217;t always easy. In order to keep a WordPress website secure and reliable, both WordPress itself and all of the plugins must be kept up to date, but sometimes updates cause breakage to the website that can impair its visual appeal or even result in downtime, leaving us scrambling to get all of the pieces we need working together again with the new version. Furthermore, sometimes we want to update the content of the site, and if it&#8217;s a small change, it&#8217;s (usually) easy and safe to just push it into production immediately. Still, sometimes we want to make big changes and see those in action ourselves before taking them live to show to the world.</p>



<p>In other words, when talking about making changes to the website, whether those be updates, new content, or whatever else&#8230; we want to try it before we buy it. We want to see it and try it out like it&#8217;s for real, but the public still sees our stable and reliable site while we tidy and polish the next version behind the scenes. And of course, it needs to be easy to set this up without asking our content creators to jump through complex technical hoops.</p>



<p>What we really want is a way to create a staging copy of our website, that we can make changes to and test out new content or configurations with, while the production website is all that is visible to the public eye. Well as it turned out, that wasn&#8217;t quite as easy as we expected&#8230;</p>



<h3 class="wp-block-heading">What We Tried</h3>



<p>One may suppose that the easiest solution to a problem is the best, so the most obvious thing to try was the features built into WordPress for making drafts of posts and pages. And indeed, these features are great for new content, and they&#8217;re reasonable for updating old content, but we find them best suited for quick and basic changes. They can be a bit clunky when doing certain kinds of edits or design changes, and it always feels a bit too easy for a stray click or keypress to publish a draft before it&#8217;s ready. For a lot of content work, we find ourselves wanting a bit more, and furthermore, these features leave us completely in the cold for testing updates before we commit to using them on our production website.</p>



<p>So we needed a stronger solution than we found built into WordPress itself. The next thing we tried was to simply copy the WordPress installation and host it on a staging domain, meaning we put the staging site on <code><strong>staging.followmyvote.com</strong></code> rather than regular <strong><code>followmyvote.com</code> </strong>and made our updates there.</p>



<p>This was a quick and dirty solution that required minimal sophistication to get up and running, but the problems it created were endless. First of all, this is not particularly discreet. Anyone could type in <code><strong>staging.followmyvote.com</strong></code> and see what we&#8217;re up to. There are ways to put it behind a password, but it still feels a bit unprofessional to have this internal resource discoverable to the public, even if it is difficult to guess the password to see inside. Secondly, WordPress doesn&#8217;t take kindly to being hoisted up from one domain and plopped down on another. The website needs configuration changes to make it OK with that, and while those are relatively easy to do, it complicates the process, making it a less attractive solution.</p>



<p>We then realized that even if you make WordPress itself work when hosted on a new domain, the pages don&#8217;t. Lots of pages had hardcoded links to <code><strong>followmyvote.com</strong></code> rather than relative links based on the current domain, and it was difficult to train ourselves not to copy and paste links without removing the domain from the beginning of them. This made working on the staging site error-prone, and often resulted in us clicking a link that took us back to the public site without our realizing it, which could then lead to making changes there unintentionally! Furthermore, when we eventually did deploy the staging site into production, we realized to our chagrin that we had accidentally copied quite a number of links to the staging site into it, which was a rather embarrassingly public mistake.</p>



<p>All around, then, the approach of using a separate staging domain was painful, error-prone, and ridiculous. It was fraught with difficulties and risks, making it easier to do it wrong than to get it right. The failures of this approach made it far worse than if we had not attempted to use a staging site at all. I considered the possibility that with automation and filtering, we might be able to rescue the strategy, but quickly decided that this would be risky and complicated and would doubtlessly result in still more mistakes.</p>



<p>Nevertheless, I remained convinced that the staging site idea had merit, and for a few years, I contemplated what I would want from such a solution and how it could be done.</p>



<h2 class="wp-block-heading"><a href="#a-solution-begins-to-take-shape"></a>A Solution Begins to Take Shape</h2>



<p>The first step to solving a problem is always figuring out what one would want in a solution. In the case of a staging solution for our website, I wanted the following features:</p>



<p><strong>Same Domain</strong> First and foremost, the staging site and the production site must share the same domain (and URL). No more <code><strong>staging.followmyvote.com</strong></code> nonsense, no more reconfiguring WordPress for different domains, and no more changing links back and forth. Both sites must be accessed by browsing to <code><strong>followmyvote.com</strong></code>.</p>



<p><strong>Not Just WordPress</strong> The solution must be built outside of and around WordPress, not using a plugin or any other feature of WordPress. Building such a solution into WordPress would be inherently more complicated than building it outside, and it wouldn&#8217;t provide the kind of isolation we would need to test different versions of plugins, themes, or WordPress itself without jeopardizing the production site. Moreover, I want a solution that works for other sites and site frameworks; not merely WordPress.</p>



<p><strong>Professionally Discreet</strong> The existence of the staging site must not be publicly obvious. Our public web presence should be buttoned up and shouldn&#8217;t have technical details exposed. It should not be feasible for any passerby or bot to access the staging site, even if they happen know it existed. On the other hand, it should be relatively convenient for us to share access to it with others, without expecting them to possess unusual knowledge or dedication.</p>



<p><strong>Zero Downtime</strong> Copying the production site into a new staging site, and subsequently deploying a stable staging site into production, should both incur zero downtime. The website should remain up and serving users the entire time with the only public indication that something happened being a change in content.</p>



<p><strong>Straightforward Automation</strong> While it is true that a good staging solution will be reasonably convenient to operate manually, it should also be straightforward to implement full automation in the future so that staging sites can one day be configured, spun up, deployed, or retired with a simple back-office control interface.</p>



<h3 class="wp-block-heading"><a href="#the-path-comes-into-focus"></a>The Path Comes into Focus</h3>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="511" height="768" src="https://followmyvote.com/wp-content/uploads/2024/11/WordPress-Staging-Website-on-the-Same-Domain-Pathway-2024-Article-Follow-My-Vote-Blog.jpg" alt="" class="wp-image-63230" srcset="https://followmyvote.com/wp-content/uploads/2024/11/WordPress-Staging-Website-on-the-Same-Domain-Pathway-2024-Article-Follow-My-Vote-Blog.jpg 511w, https://followmyvote.com/wp-content/uploads/2024/11/WordPress-Staging-Website-on-the-Same-Domain-Pathway-2024-Article-Follow-My-Vote-Blog-200x300.jpg 200w" sizes="(max-width: 511px) 100vw, 511px" /></figure>
</div>


<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-background" style="background:linear-gradient(135deg,rgb(233,233,233) 1%,rgb(169,184,195) 100%)"><strong>Executive Summary: This section is a technical discussion of how I arrived at the solution I chose. Those who aren&#8217;t interested in the finer details may simply note that I found a solution that satisfies all of my above requirements… with the caveat that, while the path to automation looks to be straightforward, this work remains to be done.</strong><br /><strong><br />A public demonstration of the staging site solution described herein is available at <a href="https://stagingsite.followmy.vote/" target="_blank" rel="noreferrer noopener">https://stagingsite.followmy.vote/</a> </strong><br /><strong><br />Following this section is the complete technical guide on how to set this solution up on a private server. It should be readily understandable to any systems administrator who is experienced with, or is otherwise willing to learn, Docker on Linux.</strong></p>
</div></div>



<p>With these requirements in mind, I put on my sysadmin hat and considered our existing deployment infrastructure. Follow My Vote runs a public WordPress site as well as several internal cloud services to facilitate our business operations. All of these exist as containerized microservices in Docker utilizing Traefik as a TLS-terminating reverse proxy sitting in front of these services. This seems to be a typical deployment strategy, and it has worked well for us for years with minimal turbulence after the initial learning curve.</p>



<p>When we tried the staging domain, we just deployed a copy of WordPress with Traefik serving it on the staging domain rather than the primary domain. While easy to implement, this strategy failed due to the difference in domain. In theory, however, the same back-end architecture could be used successfully if instead of using the domain to route traffic between the production and staging back-end services, I used some other discriminant.</p>



<p>My first idea was to use client IP to select between serving the production and staging sites; however, I rejected this approach because it was clumsy and complicated. On the one hand, an IP address isn&#8217;t a good identifier of a client anymore due to NAT, and on the other, it makes the Traefik configuration annoying due to frequent updates to an excessive number of rules.</p>



<p>Then I considered that if the browser indicated that it was looking for the staging site in its request, this would also be adequate for Traefik to pick out and decide how to route the request. This was the approach I finally settled on: the client inserts a custom header into its request and Traefik determines whether the header is correct and, if so, routes the request to the staging back-end.</p>



<p>There was one wrinkle in the solution. WordPress sites regularly make requests to themselves, and since WordPress just does a DNS lookup for the domain it&#8217;s configured to run on and sends the request there, obviously without our fancy custom header, the staging service&#8217;s requests get routed to the production service rather than back to staging! Working around this required a bit of ingenuity, and I&#8217;ll cover it in the technical guide below.</p>



<p>This solution was highly successful for us. It&#8217;s easy and reliable to implement on the server side, and opting in or out of the staging site is completely client-side. A browser plugin can handle the injection of the header, and plugins exist for major browsers to configure a custom header and to enable or disable the header with a click, making it convenient to switch back and forth between production and staging. Staging environments can be kept private by making the value of the header into a password. If a staging environment is desired to go live, simply remove the custom header requirement from it and give it a higher priority than the production server, and Traefik will switch new traffic to it with zero downtime. The custom header strategy also looks like it will be easy to automate, although for the time being, this is still future work.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>OK, now it&#8217;s time for the fun part.</p>



<h1 class="wp-block-heading"><a href="#how-to-run-it-on-your-server"></a>How To Run It on Your Server</h1>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog-1024x576.jpg" alt="" class="wp-image-63203" srcset="https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog-1024x576.jpg 1024w, https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog-300x169.jpg 300w, https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog-768x432.jpg 768w, https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog-720x405.jpg 720w, https://followmyvote.com/wp-content/uploads/2024/11/keyboard-image-Follow-My-Vote-blog.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>We show the setup of this staging solution in three stages. First is the foundation stage, where we set up a trivial Traefik reverse proxy and a placeholder webpage hosted by a fallback server, used when nothing else is working. Initially, no other servers will be defined, thus nothing else <em>will</em> be working and therefore the placeholder will be shown. The second phase adds our production website on top of the placeholder, and the third phase adds a staging site on top of that. We will explore the configs used in each of these phases here, but readers can also see the full config directory hierarchy in a git repository where each phase is represented by a commit. The git repository is at <a href="https://gitlab.followmy.vote/nathanielhourt/staging-site" target="_blank" rel="noreferrer noopener">https://gitlab.followmy.vote/nathanielhourt/staging-site</a></p>



<h3 class="wp-block-heading"><a href="#the-foundation"></a>The Foundation</h3>



<p>We will be using Docker Compose to deploy our server infrastructure. Installing Docker and Docker Compose is left as an exercise for the reader; there is an abundance of tutorials easily discoverable online for virtually all imaginable servers and environments. The reader also must choose a domain on which they wish to host their website and set up DNS for it. If it is not convenient to set up public DNS to follow this tutorial, an entry into a client&#8217;s <code><strong>/etc/hosts</strong></code> file will suffice, but in this instance the reader must procure their own TLS certificate and manage it manually. Configurations for both manually managed certs and automatic Let&#8217;s Encrypt certs (for deployments on public domain) are shown below.</p>



<p>OK, with Docker and Compose ready to go and either a public domain or a cert for our private domain in hand, let&#8217;s write our service configuration. Begin with a new directory to contain the servers on this website, and within it, a subdirectory for the foundation of our deployment, which will hold configs for Traefik and the placeholder site. In this tutorial, we&#8217;ll call these directories <strong><code>mywebsite</code> </strong>and <code><strong>foundation</strong></code>. In the <strong><code>mywebsite</code> </strong>directory, let&#8217;s make a file of environment variables we may share with the various services in our deployment, called <code><strong>env</strong></code>. The only variable we need here for this tutorial is the domain upon which we&#8217;re hosting our website:</p>



<h5 class="wp-block-heading"><a href="#mywebsiteenv"></a>mywebsite/env</h5>



<pre id="code-49" class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-b7dbaa0ec5479d1dc1bb8cad948fb774"><code>DOMAIN="stagingsite.followmy.vote"</code></pre>



<p>In our foundation directory, we&#8217;ll add a <code><strong>compose.yaml</strong></code> file, and Docker Compose will look for environment variables in a <code><strong>.env</strong></code> file in the same directory as the <strong><code>compose.yaml</code> </strong>file, so make a symlink at <code><strong>mywebsite/foundation/.env</strong></code> to the shared environment file, <code><strong>../env</strong></code>.</p>



<p>Now let&#8217;s explore the contents of the compose config section-by-section, and remember that the full config of this phase is visible <a href="https://gitlab.followmy.vote/nathanielhourt/staging-site/-/tree/07e33d17cee3f23f0fb4a7609bb22a9b837ba5b9" target="_blank" rel="noreferrer noopener">on the repo</a>.</p>



<p>We begin by defining a Docker network (which is to say, a VLAN) to interconnect our production services.</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationcomposeyaml"></a>mywebsite/foundation/compose.yaml</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-958088846f8e61dd8a26552ccdb82262"><code>networks:
  prod:
    name: production-vlan
    ipam:
      config:
        - subnet: 172.100.0.0/24
          ip_range: 172.100.0.128/25</code></pre>



<p>This creates a network, which we can refer to in this file as <code><strong>prod</strong></code>, but which will be known as<strong> <code>production-vlan</code></strong> outside this file. That network will occupy the <strong><code>172.100.0.0/24</code> </strong>subnet, but the first half of the subnet will be reserved for static IPs and Docker will only assign IPs dynamically out of the second half of the subnet.</p>



<p>Next, let&#8217;s make a service that will be Traefik, using the official public Traefik image for it, tracking the 3.1 series:</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationcomposeyaml-contd"></a>mywebsite/foundation/compose.yaml (cont&#8217;d)</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-609bf8be16ff7e559998858c3804b44c"><code>services:
  traefik:
    image: traefik:v3.1
    networks:
      prod:
        ipv4_address: 172.100.0.10
    ports:
      - "80:80"
      - "443:443"
    restart: always
    healthcheck:
      test:
        - CMD
        - traefik
        - healthcheck</code></pre>



<p>We assign our Traefik service the fitting (if not very original) name <strong><code>traefik</code> </strong>and put it on our <strong><code>prod</code> </strong>network with a static IP. Note that we&#8217;re only dealing with IPv4 in this tutorial, but Docker will invisibly forward inbound IPv6 traffic to IPv4 service networks if desired. Of course, readers may define IPv6 addresses for their services at their discretion.</p>



<p>We also bind the host&#8217;s ports 80 and 443 to the same ports on the service. Note that the <strong><code>ports</code> </strong>section governs <em>public</em> ports belonging to the host system &#8212; these are not private ports on the VLAN we created! We are giving the Traefik service access to bind the host&#8217;s ports 80 and 443, and this is the only service to which we will grant direct access to public ports. All other services will have private VLAN networking only, and Traefik will forward traffic to them over said VLANs as appropriate.</p>



<p>We direct Docker to restart the Traefik service if it stops for any reason, and we define a healthcheck command that Docker will run regularly to verify that Traefik is healthy. Note that by default, Docker will take no corrective action if it becomes unhealthy, but it makes for pretty status reports.</p>



<p>Finally, let&#8217;s attach some volumes to our Traefik service. Docker containers, by default, have no persistent storage, and all the data they store is subject to be reset to the original image&#8217;s contents any time the service restarts or is rebuilt (NB, during normal maintenance). Docker Volumes allow us to persist paths within the container, and also give us a way to place specific files and directories into the container or share certain files or directories from the host with the container.</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationcomposeyaml-contd-1"></a>mywebsite/foundation/compose.yaml (cont&#8217;d)</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3d58850a9b8694a13fbd8b99c80a1979"><code>    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
      - type: bind
        source: ${PWD}/volumes/certs
        target: /etc/certs
      - type: bind
        source: ${PWD}/configs/static.yml
        target: /etc/traefik/traefik.yml
        read_only: true
</code></pre>



<p>Here, we have done all three. We share the host&#8217;s Docker socket with the container, allowing Traefik to access Docker&#8217;s API, we make a persistent directory wherein Traefik can store (or access) TLS certificates, and we mount into the container Traefik&#8217;s config file which we will have created by the time we start this service and Docker goes looking for it.</p>



<p>Note that when we give Traefik access to Docker&#8217;s API, we give up all the security benefits of containerization, at least in Traefik&#8217;s case. Having access to the Docker API bestows the full power of the host&#8217;s <strong><code>root</code> </strong>account. Those concerned about this can look into options like rootless Docker or podman and can still follow this tutorial, but details on how to set this up are out of scope here, and the benefits are questionable: either way, a successful attack on Traefik will compromise everything Docker has access to, and whether this equates to the host&#8217;s <strong><code>root</code> </strong>or not, it&#8217;s probably still everything of value on your server. It would be nice if there were a way to expose a restricted Docker API to Traefik instead of the full gamut, but I am not aware of a way to do this today.</p>



<p>Pressing onward, we define a second service in this compose file, which is our placeholder website. We name the service <strong><code>greeter</code> </strong>and assign it a bare <strong><code>nginx</code> </strong>image. Attach it to our prod network with no config, and Docker will assign it a dynamic IP automatically. We&#8217;ll also mount in the website to host, although for this tutorial this is merely a single config file.</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationcomposeyaml-contd-2"></a>mywebsite/foundation/compose.yaml (cont&#8217;d)</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-361d15185fb5fc1cfbec6db74ff587c9"><code> greeter:
    image: nginx:latest
    networks:
      prod:
    volumes:
      - type: bind
        source: ${PWD}/configs/greeter.cfg
        target: /etc/nginx/conf.d/default.conf
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.greeter.rule=Host(`$DOMAIN`)"
      - "traefik.http.routers.greeter.priority=1"</code></pre>



<p>At the end, we include a section of labels. These are simple key-value pairs that can be attached to most constructs in Docker, and while Docker itself doesn&#8217;t use or care about them, they provide information that systems integrated with Docker (such as Traefik) can use to determine how to handle things running within Docker. These labels are how we tell Traefik how to host our service, and Traefik monitors Docker for services starting and stopping and consults the labels on those services to automatically update its routing according to the services available at the moment.</p>



<p>On our placeholder service, we put a label that tells Traefik that we want it to proxy for this service, another label telling Traefik what traffic this service is intended to host (in our case, traffic addressed to our domain), and finally, a label setting a very low priority for this service, so that of the requests that are addressed to our domain, Traefik will only forward those requests to the placeholder if nothing else is available to take it. Initially, since no other service is running, this will show us that our servers are working properly. In the next phase, when we start our real website, however, this placeholder will no longer be served unless the server of our real website crashes. This is because the real website server has a higher priority, granting it precedence over the placeholder server any time both are available.</p>



<p>OK, that&#8217;s our entire services config. Now let&#8217;s make the other things we need for our servers. Create a directory at <strong><code>mywebsite/foundation/volumes</code> </strong>and a <strong><code>certs</code> </strong>directory within. Next, create also a directory <code><strong>mywebsite/foundation/configs</strong></code>, and within, we&#8217;ll make two config files, one for Traefik, and one for our placeholder nginx website.</p>



<p>The nginx config is trivial:</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationconfigsgreetercfg"></a>mywebsite/foundation/configs/greeter.cfg</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-25a7218838dd7dac31d083f31cce909e"><code>server {
    listen       80;
    listen  &#91;::]:80;

    location / {
        add_header Content-Type text/plain;
        return 200 "This website is currently under construction. Check back later for total awesomeness! =)\n";
    }
}</code></pre>



<p>Note that we listen only on port 80. No TLS is used within the VLANs; Traefik terminates the TLS and proxies raw HTTP traffic to the services. This way the services need not deal with certs or TLS options at all, simplifying their configuration immensely without exposing unsecured traffic to the internet. All of the TLS and certificate concerns can be handled centrally at Traefik.</p>



<p>Next, the Traefik config. I&#8217;ve included comments to elucidate inline, but we&#8217;ll discuss in more detail below:</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationconfigsstaticyml"></a>mywebsite/foundation/configs/static.yml</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-fd47a96cab7a2d9998231134eb3af146"><code># Define the ports Traefik listens on
entrypoints:
  # Listen on port 80, but by default just serve a 301 redirect to the same URL on HTTPS
  web:
    address: ":80"
    http:
      redirections:
        entrypoint:
          to: websecure
          scheme: https
  # Listen on port 443, and set a default certificate to use so services don't need to configure it individually
  websecure:
    address: ":443"
    asDefault: true # Since web is just a redir to websecure, make all routers default to using only websecure
    http:
      tls: {} # Set a default here for all routers using this entrypoint to use TLS; simplifies per-router config
      # When using Let's Encrypt, uncomment this line as well as the definition of the resolver below
      # Then you can remove the manual certs config from the providers section below
        #certResolver: letsencrypt

# Define a certificate resolver. Traefik uses Let's Encrypt by default, but we need to configure it to make it work
#certificatesResolvers:
#  letsencrypt:
#    acme:
#      email: "your@email.here"
#      storage: /etc/certs/acme.json
#      keyType: "EC256"
#      tlsChallenge: {}


# Configure Traefik to watch for docker services to show up asking to be hosted
providers:
  docker:
    watch: true
    # Matter of taste; I like to explicitly set which services Traefik should expose via the traefik.enable=true label
    exposedByDefault: false
  # During testing, using Let's Encrypt can be difficult, so we can manually configure cert in a dynamic config file
  file:
    filename: /etc/certs/manual.yml

# Enable the ping API endpoint, so docker can do health checks
ping: {}

### The rest of this is optional stuff that might be useful from time to time

# To enable Traefik's dashboard website and API
#api:
#  dashboard: true
#  insecure: true # To allow simply querying Traefik's port 8080 rather than needing to define a router to get to it

# To log each request like a webserver does
#accessLog: {}

# To increase logging verbosity and make it easier to diagnose problems
#log:
#  level: DEBUG</code></pre>



<p>Traefik operates with two classes of configuration. The first is the static config, which is what we&#8217;re setting here, and it controls the constant concerns that are the same over an entire execution cycle of Traefik. The second configuration class is the dynamic configuration, which controls the services Traefik is expected to expose and the rules controlling how those services are accessed. The dynamic configuration changes over the course of Traefik&#8217;s execution, and Traefik constantly adjusts its behavior to align with this configuration: as new services show up or old ones shut down, Traefik updates its routing and adjusts how requests are directed accordingly. The dynamic config comes from &#8220;providers&#8221; which Traefik monitors for up-to-the-moment status updates and changes, and the providers Traefik should monitor are defined in the static config.</p>



<p>OK, with that context established, let&#8217;s look over the static config above. First, we define entrypoints. These are the ports Traefik should listen on for incoming traffic. We configure two: port 80, for HTTP traffic; and port 443, for HTTPS. We name the HTTP entrypoint <strong><code>web</code> </strong>and the HTTPS, <code><strong>websecure</strong></code>. We configure Traefik not to connect HTTP traffic to services, but rather to respond with a 301 redirect to HTTPS. This is, of course, a matter of preference, but it&#8217;s a common enough pattern that it&#8217;s useful to show it here. We configure the HTTPS entrypoint, <code><strong>websecure</strong></code>, to be a default entrypoint, to simplify the per-service configuration, and we set TLS options so as to inform Traefik that this entrypoint deals with TLS traffic, as it will not infer this from the use of port 443 alone.</p>



<p>In the next sections, the config is different for those wishing to use a public domain and Let&#8217;s Encrypt certs than for those configuring their certs manually (as those using a private domain must do). Certificates are a dynamic concern (they change at runtime), so they aren&#8217;t set in the static config, but where to get them is. If configuring the cert manually, just put an empty <strong><code>tls</code> </strong>config block to indicate that TLS is used, but to accept the defaults. We&#8217;ll then set a dynamic config provider that loads in the certs. Alternatively, if using Let&#8217;s Encrypt, uncomment the <strong><code>certResolver</code> </strong>config so Traefik knows to get certs automatically, as well as the config lines defining the certificate resolver to be used. In this case, the dynamic configuration provider for manually managed certs can be omitted.</p>



<p>Moving ahead to the providers configuration, we configure Traefik to monitor Docker for dynamic configurations, and I prefer to select explicitly which services should be exposed with the <code><strong>traefik.enable=true</strong></code> label, but again, this is a matter of taste. Then, for those managing certs manually, we add a dynamic provider from a file, where we will hook in those certs.</p>



<p>Those using Let&#8217;s Encrypt can omit this, but for those who aren&#8217;t, here are some typical contents of that dynamic config file. Be sure also to put in your private key and certificate files alongside so the paths provided in the dynamic config point to them in the container&#8217;s filesystem (remember that our <strong><code>mywebsite/foundation/volumes/certs</code> </strong>directory shows up at <strong><code>/etc/certs</code> </strong>inside the container!).</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationvolumescertsmanualyml"></a>mywebsite/foundation/volumes/certs/manual.yml</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e12ca50e7763b5d7a65955cfdb2506b7"><code>tls:
  stores:
    default:
      defaultCertificate:
        certFile: /etc/certs/followmy.vote.pem
        keyFile: /etc/certs/followmy.vote.key.pem</code></pre>



<p>Returning our attention to the static config, hopefully the remainder of the configuration is self-explanatory. I do want to note, however, that the <strong><code>ping</code> </strong>section is only needed if using the <strong><code>healthcheck</code> </strong>on the Traefik service in <code><strong>compose.yaml</strong></code>. If no healthcheck is required, the ping section can be omitted as well. To opt into anonymous usage statistics collection, add a <strong><code>global</code> </strong>section with a setting <code><strong>sendAnonymousUsage: true</strong></code>.</p>



<p>With that, our foundation is complete! Go ahead and start the servers by setting your working directory to <code><strong>foundation</strong></code> and running <code><strong>docker compose up</strong></code>. Note that this starts the servers in the foreground with logging to the console; to daemonize it all, pass an additional flag <code><strong>-d</strong></code> and monitor the status with <code><strong>docker compose ps</strong></code> and <code><strong>docker compose logs</strong></code>. You should now be able to open your website in a web browser, though if using Let&#8217;s Encrypt, it may take a few extra moments for the cert to be provisioned. If automatic certs don&#8217;t seem to be working, turn on the debug logging in the static config and monitor Traefik&#8217;s output for details on the ACME negotiations. The certs that Traefik has acquired go into <code><strong>acme.json</strong></code> in the <code><strong>certs</strong></code> volume &#8212; that file can also be monitored to determine whether certs are being issued successfully, without enabling debug logging.</p>



<p>Take a few moments to bask in the glory of your new foundational website infrastructure&#8230; and then move on to Phase II, the production website.</p>



<h3 class="wp-block-heading"><a href="#pushing-to-prod"></a>Pushing to Prod</h3>



<p>The simplest phase of our deployment, now we create the production website. For our demo, this is a trivial single-page website, almost identical to the fallback site. We just create another bare nginx service and populate it with a slightly different config. In a real deployment, you might set up a WordPress here or any number of other apps; from the perspective of the staging system as well as Docker and Traefik, it&#8217;s all fundamentally the same.</p>



<p>As an aside, if you are setting up an app with dependencies, and those dependencies are in their own containers, I recommend putting these dependencies on a separate VLAN without Traefik and connecting the front end to both the <code>prod</code> VLAN and its support VLAN. This creates a better separation of concerns. If your front end is on multiple VLANs, you need to add another label to it so Traefik knows which VLAN to connect to it on, i.e.<strong> <code>traefik.docker.network=production-vlan</code> </strong>(remember to use the absolute name, not the local alias).</p>



<p>But back to our demo, let&#8217;s begin by creating a new directory <code><strong>mywebsite/production</strong></code>, and in that directory creating our <code><strong>.env</strong></code> symlink back to <code><strong>../env</strong></code>. Next, create our compose file with our service definition:</p>



<h5 class="wp-block-heading"><a href="#mywebsiteproductioncomposeyaml"></a>mywebsite/production/compose.yaml</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-8290233839e7719c62fbda9f87341804"><code>networks:
  prod:
    name: production-vlan
    external: true

services:
  website:
    image: nginx:latest
    networks:
      - prod
    labels:
      traefik.enable: true
      traefik.http.routers.prod.rule: "Host(`$DOMAIN`)"
    volumes:
      - type: bind
        source: ${PWD}/configs/website.cfg
        target: /etc/nginx/conf.d/default.conf
</code></pre>



<p>We don&#8217;t need to define the network this time, as it was already defined in the foundation configs. This time we just give it a local name, mention its absolute name, and set <strong><code>external</code> </strong>to true so Docker knows to find it already created rather than creating it anew.</p>



<p>Then we create our service, essentially the same as before, but this time we don&#8217;t set an artificially low priority. I used a different syntax for the labels this time&#8230; but both formats do the same thing.</p>



<p>Finally, we create our nginx config:</p>



<h5 class="wp-block-heading"><a href="#mywebsiteproductionconfigswebsitecfg"></a>mywebsite/production/configs/website.cfg</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9b29d0d3f29616456c04ef3a7ab6c8ce"><code>server {
    listen       80;
    listen  &#91;::]:80;

    location / {
        add_header Content-Type text/plain;
        return 200 "Welcome to Follow My Vote's staging website demo. You are currently viewing the production site.\n";
    }
}</code></pre>



<p>To launch it, we do the same thing as before. Make sure Traefik is still running and, from the new <strong><code>production</code> </strong>directory, do a<strong> <code>docker compose up -d</code></strong> to start the website in the background. Now go to your domain in your browser, and you should see the new production page rather than the placeholder.</p>



<p>And with that, we&#8217;re ready to make our staging site!</p>



<h3 class="wp-block-heading"><a href="#staging-the-next-thing"></a>Staging the Next Thing</h3>



<p>Now to launch our staging site, we could actually just copy our production site, tweak the Traefik rule, and be done&#8230; except that if your website or app is anything more than a trivial static webpage, it might at some point want to connect to itself as a client (for example, I know for a fact that WordPress does this to trigger background tasks) and if we are too naive about how we set this up, the staging service won&#8217;t connect to itself but will rather connect to the production service. This is because the staging service doesn&#8217;t know to set the magic header needed to reach itself through Traefik.</p>



<p>This posed a bit of a conundrum for me when I was designing this solution. I couldn&#8217;t just convince the app (I was working with WordPress) to connect to localhost (its own container) rather than using DNS to find Traefik because while it was configured to serve over port 80, it was also configured to know that its URL uses the <code><strong>https://</strong></code> scheme, so it used that and thus couldn&#8217;t connect to itself directly &#8212; it had to go through Traefik for TLS termination. &#8220;OK,&#8221; I thought, &#8220;but I control the IP of the container, so I can just tell Traefik to route the request-to-self based on source IP, right?&#8221; Well, no, because the way Docker routes outgoing traffic, all containers&#8217; <em>outgoing</em> traffic to a public IP address gets NATed together and shares a single source IP. So I have to force my app to connect to itself <em>through Traefik,</em> but also <em>within Docker</em> without going to the public IP associated with my domain on public DNS. Here is how I did that.</p>



<p>We create a new VLAN for the staging site, giving it a different subnet from the production VLAN. We then put Traefik on both VLANs, giving it an alias on the staging VLAN which is our domain. This means that when a container in the staging VLAN does a DNS lookup on our domain, Docker sees that this is an alias for a container on the VLAN and gives that container&#8217;s VLAN-private IP as the DNS result, rather than the result of a public DNS query! This causes the staging container to connect to our domain by connecting to Traefik directly over the staging VLAN, thus eliminating NAT and showing its real source IP to Traefik. Traefik is then configured to route any and all traffic destined for our domain coming from the staging VLAN to the staging frontend, even if it doesn&#8217;t have the magic header that says &#8220;route me to the staging service&#8221;!</p>



<p>So first things first, we edit our foundation compose config to add the new network and to give Traefik an alias on it. In the <code><strong>networks:</strong></code> section, we add:</p>



<h5 class="wp-block-heading"><a href="#mywebsitefoundationcomposeyaml-insert"></a>mywebsite/foundation/compose.yaml (insert)</h5>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c3b048761fc621b64e6942bcaf0930b1"><code> staging:
    name: staging-vlan
    ipam:
      config:
        - subnet: 172.200.0.0/24
          ip_range: 172.200.0.128/25</code></pre>



<p>Then in the <strong><code>services.traefik.networks:</code> </strong>section, we add:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-2273567137def34cdfd912a325e1c008"><code>staging:
        ipv4_address: 172.200.0.10
        aliases:
          - $DOMAIN</code></pre>



<p>Remember that you can see <a href="https://gitlab.followmy.vote/nathanielhourt/staging-site/-/commit/28b6669b8bbebea255b2a9e3793a452acc563ea0" target="_blank" rel="noreferrer noopener">the entire config diff</a> on the git repository.</p>



<p>Next, we just copy our entire <strong><code>production</code> </strong>directory calling the new copy <code><strong>staging</strong></code> and update all the references to production things to refer to staging things instead, and we update the Traefik routing rule for the staging service like so:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-11faa523d19ca4dc21927e4e6ad7f7d2"><code><code>traefik.http.routers.staging.rule: "Host(`$DOMAIN`) &amp;&amp; (Header(`X-REQUEST-STAGING`, `Saex6Bu0`) || ClientIP(`172.200.0.0/24`))"</code></code></pre>



<p>Note that we changed the label key as well as the value; the <code><strong>prod</strong></code> or <strong><code>staging</code> </strong>in the label key are names that we define arbitrarily, and they must be globally unique. This is true in many of Traefik&#8217;s service labels, so copy and paste carefully!</p>



<p>Examining our rule, it now applies to traffic destined for our domain AND either bearing the magic header, or coming from our staging VLAN subnet. Also, by default a Traefik routing rule&#8217;s priority is equal to the number of characters in the rule (a cheap but remarkably effective heuristic for preferring more specific rules over less specific ones), meaning that while our staging traffic will match both the production rule and the staging rule (and the fallback rule too!), the staging traffic will be routed to the staging service by virtue of that service having the longest rule.</p>



<p>Make the appropriate changes to the staging site by updating its config, and we&#8217;re ready to run the staging site live! With yet another <code><strong>docker compose up -d</strong></code> we can make it so.</p>



<p>To access the staging site, it is necessary to set a custom header in our requests to our server. An easy way to do this is via the use of the <a rel="noreferrer noopener" href="https://mybrowseraddon.com/modify-header-value.html" target="_blank">Modify Header Value</a> extension for popular browsers. Go ahead and give it a whirl! (Users of Chromium-based browsers may need to use <a rel="noreferrer noopener" href="https://chromewebstore.google.com/detail/modheader-modify-http-hea/idgpnmonknjnojddfkpgkljpfnnfcklj" target="_blank">ModHeader</a> or some other option instead, as Chromium&#8217;s Modify Header Value doesn&#8217;t seem to work on <em>all</em> requests that match the filter).</p>



<p>Our staging site is now live and working, discreetly, for only those we want it to. We now can make our desired changes to it, and test them out as if they were in prod, on the normal domain and with the normal config. From an application perspective the staging site is exactly identical to the production site except that only we can see it, and only when we want to, while the rest of the world sees the production site without bothering to know any other option might exist.</p>



<p>In fact, the staging site is so similar to the production site that when we decide it&#8217;s ready, we can simply make it the production site &#8212; at least temporarily.</p>



<h3 class="wp-block-heading"><a href="#zero-downtime-updates"></a>Zero-Downtime Updates</h3>



<p>To deploy the new staging changes into production, we could shut down production, copy over the new changes, and re-deploy, and with the help of our fallback server we could even display a friendly &#8220;Scheduled maintenance&#8221; page in the meantime&#8230; but wouldn&#8217;t it be nicer if we could just switch over with no downtime at all? Well as it happens, there are a number of ways to do this. One of them would be to simply relaunch the staging site with a routing rule that makes it preferable to the production site for all traffic. With a health check on it, Traefik will watch it until it reports as healthy after its startup routine, and then switch new traffic over to it because it has a preferable rule. Once traffic switches over, we could shut down the production site, update it to the new code, start it up again, and once it&#8217;s healthy, shut down the staging site so traffic goes back to the service labeled as production. Voila! An upgrade with no downtime at all!</p>



<p>Of course, this isn&#8217;t the only way to accomplish the same result, and all such mechanisms have advantages and disadvantages, and depending on the exact details of your app, this approach may not work and possibly no zero-downtime approach will work at all. Nevertheless, this approach should work for many applications, and even if the zero downtime bit doesn&#8217;t work for your particular app, this overall strategy should be effective and compelling.</p>



<p>I wish you luck and I hope you&#8217;ve enjoyed this tutorial. If you get this far, or if you have any questions or trouble, drop me a line on Matrix: <a rel="noreferrer noopener" href="https://matrix.to/#/@i:nathaniel.land" target="_blank">@I:nathaniel.land</a>. I&#8217;ll see you around! =)</p>



<p></p>



<p class="has-text-align-center"><a href="https://followmyvote.com/blog/">Read More Articles From The FMV Blog </a></p>



<p></p>
<p>The post <a href="https://followmyvote.com/wordpress-staging-website-on-the-same-domain/">WordPress Staging Website on the Same Domain</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/wordpress-staging-website-on-the-same-domain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2021 Blockchain Highlights</title>
		<link>https://followmyvote.com/2021-blockchain-highlights/</link>
					<comments>https://followmyvote.com/2021-blockchain-highlights/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Fri, 10 Dec 2021 19:47:50 +0000</pubDate>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Avalanche]]></category>
		<category><![CDATA[Bitcoin Cash]]></category>
		<category><![CDATA[Blockchain Highlights]]></category>
		<category><![CDATA[blockchain technology]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Solana]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=61555</guid>

					<description><![CDATA[<p>At Follow My Vote, we build blockchain solutions primarily for voting applications. But while we continue to build our own software, we keep a vigilant eye on competitors and exciting projects in the blockchain space. Three projects that we would like to highlight on our blog and give recognition to are Solana, Bitcoin Cash, and [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/2021-blockchain-highlights/">2021 Blockchain Highlights</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>At Follow My Vote, we build blockchain solutions primarily for voting applications. But while we continue to build our own software, we keep a vigilant eye on competitors and exciting projects in the blockchain space. Three projects that we would like to highlight on our blog and give recognition to are Solana, Bitcoin Cash, and Avalanche.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="256" data-id="61572" src="https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1-1024x256.jpg" alt="" class="wp-image-61572" srcset="https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1-1024x256.jpg 1024w, https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1-300x75.jpg 300w, https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1-768x192.jpg 768w, https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1-720x180.jpg 720w, https://followmyvote.com/wp-content/uploads/2021/12/Solana-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p><strong>Solana</strong></p>



<p>Solana is a rather new open source project, launching officially in March 2020 by the Solana Foundation, headquartered in Geneva, Switzerland. The project competes to provide decentralized finance (DeFi) solutions contending against platforms like Ethereum.&nbsp;</p>



<p>Solana (SOL) uses a unique hybrid consensus model. <a href="https://solana.com/news/proof-of-history/" target="_blank" rel="noreferrer noopener">Proof-of-history (PoH)</a> is combined with the proof-of-stake (PoS) to reach consensus on the blockchain. Proof-of-stake has been used by many other projects, but proof-of-history is a bit more noteworthy. PoH uses a verifiable delay function (VDF) to assign timestamps on the blockchain in a decentralized manner. Ethereum, by contrast, uses outside programs to assign a timestamp so transactions can be validated in the order they were received. On Solana, this forces block producers to go through the VDF to get to their assigned slot and produce a block. On the Solana chain, data is inserted into the sequence by appending the hash of the data of the previously generated states. The state, input data, and count are all published. This creates an upper bound on time and since PoH can reference a previous hash, the lower bound time is also known. Therefore the VDF will indicate the exact time of any transaction. This entire process is important because it allows the Solana chain to speed up transaction speed. Since everyone knows the exact time, validation can be completed much quicker. Solana now has the capability to process up to 50,000 transactions per second.&nbsp;</p>



<p>Solana’s future looks bright with their Proof-of-history innovation. They also boast low fees and a growing marketplace for NFTs.&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" data-id="61573" src="https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1024x256.jpg" alt="" class="wp-image-61573" srcset="https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1024x256.jpg 1024w, https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-300x75.jpg 300w, https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-768x192.jpg 768w, https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-720x180.jpg 720w, https://followmyvote.com/wp-content/uploads/2021/12/Bitcoin-Cash-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p><strong>Bitcoin Cash&nbsp;</strong></p>



<p>Bitcoin Cash was created in 2017 as a result of concerns about the scalability of Bitcoin. Developers and Bitcoin influencers could not come to terms on the best way to scale the blockchain. Some supporters pushed for the Segregated Witness update while others called for scaling onchain by increasing the block size. A hard fork occurred and two blockchains emerged, one called Bitcoin and one called Bitcoin Cash.&nbsp;</p>



<p>Bitcoin Cash is the project that chose to scale onchain, and is considered by many to be the continuation of the original Bitcoin project as <a href="https://bch.info/bitcoin.pdf" target="_blank" rel="noreferrer noopener">peer-to-peer electronic cash</a>. Bitcoin moved on with <a href="https://en.wikipedia.org/wiki/SegWit" target="_blank" rel="noreferrer noopener">SegWit </a>which has been described as inelegant and complicated, creating two parallel sets of rules for evaluating transactions, but ignoring one of them. SegWit technically breaks Bitcoin&#8217;s security by empowering miners and anyone who can coerce them to <a href="https://hive.blog/bitcoin/@modprobe/i-looked-into-segwit-and-here-s-what-i-saw" target="_blank" rel="noreferrer noopener">steal balances</a>. according to the Bitcoin protocol, <em>all segwit transactions can be spent by anybody with no proof of authorization</em>. That means that literally anyone can make a transaction that spends the bitcoins in a SegWit address. The &#8220;witness data&#8221; (which is the rules for who&#8217;s allowed to claim the outputs, and the proof that the rules were followed on the inputs that claim the outputs) is moved out of the main block and replaced with a simple &#8220;anyone can spend me, there are no rules and no proofs,&#8221; and it&#8217;s up to miners to know what the rules really are, ignore the &#8220;anyone can spend me&#8221; instruction, and instead apply the rules from the witness data.  Even so, Bitcoin has continued to gain popularity and value, dominating the cryptocurrency space.&nbsp;</p>



<p>Bitcoin Cash (BCH) has not experienced the same rise as Bitcoin, but has been innovating nonetheless. The principal goal of Bitcoin Cash is to provide more economic freedom to those who need it in the world. In this regard they have been <a href="https://news.bitcoin.com/bitcoin-cash-shows-maturity-in-its-fourth-anniversary/" target="_blank" rel="noreferrer noopener">making strides</a>. These include advancements to the blockchain such as introducing Schnorr Signatures, the implementation of a token standard called <a href="https://news.bitcoin.com/simple-ledger-protocol-universe-is-thriving-lottery-mint-atms-over-8500-slp-tokens-created/">SLP</a>, and a new difficulty algorithm. Bitcoin Cash has also been successful assisting communities in countries like Argentina, Venezuela, and South Sudan. Flipstarter is another exciting project for Bitcoin Cash. The project is a noncustodial crowdfunding tool that uses BCH. This tool empowers the community to use its own means to fund valuable projects for the BCH environment. Bitcoin Cash is also making moves with regard to institutional investment. Greyscale is now offering shares of the Bitcoin Cash Trust to institutions allowing institutions to disregard custody concerns. A new fungibility protocol directed at obscuring transactions on the BCH chain called <a href="https://cashfusion.org/" target="_blank" rel="noreferrer noopener">Cashfusion </a>was implemented, which is a big step forward for privacy. A whopping $3.2 billion has been anonymized via Cashfusion. Lastly, Bitcoin Cash is now a competitor in the decentralized finance (DeFi) space. General Protocols launched Anyhedge and Detoken, which are two new DeFi tools designed to operate on top of the BCH protocol.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" data-id="61575" src="https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1024x256.jpg" alt="" class="wp-image-61575" srcset="https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-1024x256.jpg 1024w, https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-300x75.jpg 300w, https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-768x192.jpg 768w, https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1-720x180.jpg 720w, https://followmyvote.com/wp-content/uploads/2021/12/Avalanche-Logo-Blockchain-Highlights-2021-Follow-My-Vote-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p><strong>Avalanche</strong></p>



<p>Avalanche (AVAX) launched it’s mainnet in 2020 and has grown leaps and bounds in 2021. <a href="https://www.avax.network/" target="_blank" rel="noreferrer noopener">The project </a>&nbsp;is a layer one blockchain that focuses on decentralized applications and custom blockchain networks. Avalanche is competing directly with Ethereum in the smart contract space and hopes their higher transaction output will give them competitive advantage. (TPS is upwards of <a href="https://coinmarketcap.com/currencies/avalanche/" target="_blank" rel="noreferrer noopener">6500 currently</a>)&nbsp;</p>



<p>What makes Avalanche special is their use of three interoperable blockchains to achieve true decentralization at scale. The three chains are the Exchange Chain (X-Chain), the Contract Chain (C-Chain), and the Platform Chain (P-Chain). The X-Chain serves as an exchange for the AVAX tokens and other assets on the chain. This blockchain is run by the Avalanche consensus mechanism. This mechanism works to allow all nodes to process and validate transactions by enlisting a directed acyclic graph (DAG) protocol. By doing this, transactions are processed simultaneously, and validators can be statistically certain transactions are correct via their random polling. The C-Chain exists to run smart contracts and dApps. This chain includes the Avalanche Virtual Machine giving devs the ability to fork Ethereum Virtual Machine compatible dApps. The C-Chain is operated by the Snowman consensus mechanism, which is the implementation of the Avalanche consensus protocol for linear chains. The final blockchain in the trifecta is the P-Chain. This chain coordinates the network validators and controls subnets. Subnets are sets of validators. The P-Chain also runs on the Snowman consensus mechanism.&nbsp;</p>



<p>We commend Avalanche for their continued development of blockchain bridges, which allows the transfer of data between two different blockchain projects. </p>



<p>This completes our blockchain highlights post for 2021. </p>



<p>DISCLAIMER: We do not endorse these projects; we are simply recognizing that these groups have made significant innovations in the blockchain space. Use our <a href="https://followmyvote.com/contact/" target="_blank" rel="noreferrer noopener">contact form</a> if any info about these projects needs updating and/or if there are any new innovations in the blockchain or open source fields Follow My Vote should be made aware of.</p>
<p>The post <a href="https://followmyvote.com/2021-blockchain-highlights/">2021 Blockchain Highlights</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/2021-blockchain-highlights/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Answering The Tough Questions On A New Blockchain Voting Podcast Interview</title>
		<link>https://followmyvote.com/answering-the-tough-questions-on-a-new-blockchain-voting-podcast-interview/</link>
					<comments>https://followmyvote.com/answering-the-tough-questions-on-a-new-blockchain-voting-podcast-interview/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Tue, 10 Aug 2021 22:19:44 +0000</pubDate>
				<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Voting]]></category>
		<category><![CDATA[Blockchain Voting Podcast]]></category>
		<category><![CDATA[ChrispBTC]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=61466</guid>

					<description><![CDATA[<p>The Follow My Vote Team has joined ChrispBTC on his brand new blockchain voting podcast. The goal of the podcast is to show the world the pros and cons of blockchain voting. We had a great time discussing our project and we plan to join repeatedly to take a deeper dive into some of the [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/answering-the-tough-questions-on-a-new-blockchain-voting-podcast-interview/">Answering The Tough Questions On A New Blockchain Voting Podcast Interview</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The Follow My Vote Team has joined ChrispBTC on his brand new blockchain voting podcast. The goal of the podcast is to show the world the pros and cons of blockchain voting. We had a great time discussing our project and we plan to join repeatedly to take a deeper dive into some of the topics we covered in this initial episode. </p>



<p>We encourage our fans and supporters to watch and share the video!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="The Future of Blockchain Voting &amp; Follow My Vote" width="500" height="281" src="https://www.youtube.com/embed/sUUUoKKMPcs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>At one point in the podcast, Chris asks about the obstacles we face when considering the trust of users and security of the platform. Follow My Vote CTO, Nathaniel Hourt, gives a thorough explanation of the 3 main concerns we are addressing on this front. Be sure to watch the interview all the way through so you don&#8217;t miss it!</p>



<p>You can see other videos in the series on the <a href="https://www.youtube.com/channel/UCD1znWrEj1-r6jSVe94jZ5A/featured" target="_blank" rel="noreferrer noopener">ChrispBTC YouTube Channel</a>. ChrispBTC plans to interview other companies concentrating on blockchain voting and he is even inviting politicians (for and against) to be on the show.</p>



<p>The Follow My Vote team is open to participating on other podcasts and interview opportunities. If you run a podcast and would like to have us on or have a suggestion for a show that you think would be a good fit, please reach out through our <a href="https://followmyvote.com/contact/">contact form</a>. </p>
<p>The post <a href="https://followmyvote.com/answering-the-tough-questions-on-a-new-blockchain-voting-podcast-interview/">Answering The Tough Questions On A New Blockchain Voting Podcast Interview</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/answering-the-tough-questions-on-a-new-blockchain-voting-podcast-interview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Word for Voatz</title>
		<link>https://followmyvote.com/a-word-for-voatz/</link>
					<comments>https://followmyvote.com/a-word-for-voatz/#respond</comments>
		
		<dc:creator><![CDATA[Nathaniel Hourt]]></dc:creator>
		<pubDate>Fri, 05 Mar 2021 22:10:36 +0000</pubDate>
				<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Voting]]></category>
		<category><![CDATA[blockchain]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[online election]]></category>
		<category><![CDATA[online voting app]]></category>
		<category><![CDATA[Trail of Bits]]></category>
		<category><![CDATA[Voatz]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=61158</guid>

					<description><![CDATA[<p>Years ago, Follow My Vote set out to build a cryptographically secure, end-to-end user-verifiable online election system. We eventually realized that while blockchain technology provides an excellent foundation for the back end of such a system, our current technologies are simply not adequate to support the full extent that is necessary to bring such a [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/a-word-for-voatz/">A Word for Voatz</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Years ago, Follow My Vote set out to build a cryptographically secure, end-to-end user-verifiable online election system. We eventually realized that while blockchain technology provides an excellent foundation for the back end of such a system, our current technologies are simply not adequate to support the full extent that is necessary to bring such a system to the world, and that new technologies will be necessary to replace some of the solutions used to create practical and functional systems today.</p>



<p>As we are researching and developing new platform technologies necessary to someday support the development of online voting systems, we take note of others in the industry working toward such systems; especially those also using blockchain technology.</p>



<p>One such company is Voatz, and today I&#8217;d like to highlight their efforts and share some thoughts about their work. Let me preface this by saying that this is just one man&#8217;s opinion and perspective. I have no affiliation with Voatz, and have not closely examined their work. My words here should be viewed merely as the casual commentary of an interested bystander.</p>



<p>Voatz is working on solutions for an online voting app using blockchain as a durable record of the election procedures and results. They are developing the procedures and workflows necessary to conducting an online election, and creating the tools and interfaces to administrate and participate in such an election, and showing the world what it could look like.</p>



<p>In the course of developing these procedures, Voatz ran a pilot of their app, giving voters and administrators alike a taste of what online voting could be like, and sometime thereafter, they came under fire for the security stance of their pilot system. A team of advanced security researchers at MIT wrote <a href="https://internetpolicy.mit.edu/wp-content/uploads/2020/02/SecurityAnalysisOfVoatz_Public.pdf">a paper</a> decrying the Voatz pilot as an insecure approach to online elections and warning the public that such solutions cannot be trusted to uphold the operations of modern democracy. Shortly thereafter, security firm Trail of Bits published <a href="https://blog.trailofbits.com/2020/03/13/our-full-report-on-the-voatz-mobile-voting-platform/">a report</a> outlining vulnerabilities in Voatz&#8217; application and infrastructure in greater detail.</p>



<p>These events seem to have led to a great deal of uncertainty and doubt of Voatz&#8217; suitability as a provider of solutions in the elections space. If their pilot was so insecure, can the company be trusted to produce solutions for use in secure elections?</p>



<p>As one trained in the same kind of cybersecurity analysis and techniques as were employed by the research team at MIT, I would like to share my view on these events. Elections are enormously complex endeavors that require coordination of many people and organizations, and this succeeds today by using various different procedures and methods, but a transition to online voting will massively disrupt these procedures, and nobody is yet sure how that can possibly work. Voatz is helping to find ways that it can, even while the full security architecture of a final solution is still uncertain. To do this, Voatz is working with security standards well understood by the industry today, building voting system demonstrations based on the standards we might expect from existing major tech companies.</p>



<p>The MIT review raises legitimate concerns about the viability of Voatz&#8217; approach for secure elections. In a sense, the MIT researchers are pointing out that while they themselves don&#8217;t know what the security architecture of a fitting solution for online elections would be, they can clearly see that the Voatz approach isn&#8217;t it. And while this may be true, it completely misses the value of Voatz&#8217; contribution. Voatz is showing us how online elections can look, even before the full picture of how they can work comes into focus. It doesn&#8217;t exhibit the final security architecture, and it doesn&#8217;t need to: Voatz is building to the security standards we understand today to show us how the final solution could look tomorrow.</p>



<p>Meanwhile, the Trail of Bits report was commissioned by Voatz to evaluate the security of their pilot against the standards Voatz <em>was</em> aiming for, and the vulnerabilities disclosed by that report, while serious in nature, are not fundamental flaws, and should be relatively easy to fix.</p>



<p>In conclusion, we at Follow My Vote are grateful to Voatz for the work they are doing to further the conversation on how online voting solutions may look in the future, how online elections can be orchestrated, and what it will be like to participate in them. We look forward to seeing what they produce next, even as we are researching and developing the foundations and underpinnings that will eventually enable applications to be deployed meeting the full security, privacy, and end-to-end verifiability requirements necessary to support modern political elections online.</p>
<p>The post <a href="https://followmyvote.com/a-word-for-voatz/">A Word for Voatz</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/a-word-for-voatz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>More dApps are Moving to the EOS Ecosystem &#8211; Why?</title>
		<link>https://followmyvote.com/more-dapps-are-moving-to-the-eos-ecosystem-why/</link>
					<comments>https://followmyvote.com/more-dapps-are-moving-to-the-eos-ecosystem-why/#respond</comments>
		
		<dc:creator><![CDATA[Adam Ernest]]></dc:creator>
		<pubDate>Wed, 05 Jun 2019 23:41:51 +0000</pubDate>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blockchain]]></category>
		<category><![CDATA[dApp]]></category>
		<category><![CDATA[dApps]]></category>
		<category><![CDATA[EOS]]></category>
		<category><![CDATA[Ethereum]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=43082</guid>

					<description><![CDATA[<p>While the cryptocurrency industry has slowed down a little since the end of 2017, it is still a very exciting space with a ton of potential. Cryptocurrency and blockchain are adopted in more industries out there. Blockchain can have value in banking, healthcare, education, technology and numerous other spheres. But without a doubt, one of [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/more-dapps-are-moving-to-the-eos-ecosystem-why/">More dApps are Moving to the EOS Ecosystem &#8211; Why?</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span lang="EN-CA">While the cryptocurrency industry has slowed down a little since the end of 2017, it is still a very exciting space with a ton of potential. Cryptocurrency and blockchain are adopted in more industries out there. Blockchain can have value in banking, healthcare, education, technology and numerous other spheres. But without a doubt, one of the most exciting things in the space recently has been the explosion of dApps.</span></p>
<p><span lang="EN-CA">These dApps (or decentralized applications) are similar to standard apps except that they run on a decentralized network of computers, not one centralized location. They will operate in a similar fashion to normal apps in terms of the user-interface (UI), but will essentially be based on a smart contract. They are seen as the future of blockchain by many and allow people to both use and participate in the services offered by these dApps. </span></p>
<p><span lang="EN-CA">While there are numerous places that these dApps can be hosted, many dApps found their home on the Ethereum blockchain. It has been around for years. Ethereum is the second largest cryptocurrency according to its total market cap, and the third most expensive coin </span><span lang="EN-CA"><a href="https://cex.io/eth-usd" target="_blank" rel="noopener noreferrer">in terms of USD</a></span><span lang="EN-CA"> (i.e. $260 per Ether). It is a safe bet as it hosts thousands of different dApps. However, recently, a new contender has risen to the occasion and is giving Ethereum a run for its money. That contender is EOS. But why? What makes EOS and its blockchain attract so many projects and people away from Ethereum?</span></p>
<p><span lang="EN-CA">With that in mind, this article is going to take a look at a few reasons why more dApps are beginning to move over to the EOS ecosystem. However, before looking at why dApps are making the switch, let’s learn a little about EOS itself and how it came to be.</span></p>
<h2><span lang="EN-CA">What is EOS?</span></h2>
<p><span lang="EN-CA">EOS is a powerful infrastructure for decentralized applications. They make it simple to design dApps that are both vertically and horizontally scalable, as well as ensuring usability and flexibility. All different types of apps can be created &#8211; from ones to share music to ones to track your fitness and everything in between. </span></p>
<p><span lang="EN-CA">EOS is a new kid on the crypto block, as its ICO began in June 2017. In total, their ICO was able to raise </span><span lang="EN-CA"><a href="https://cryptoslate.com/eos-raises-record-breaking-4-billion-from-crowdsale/" target="_blank" rel="noopener noreferrer">over $4 billion</a></span><span lang="EN-CA">, despite them not even having a live product, which was unheard of. According to the amount raised, this was the largest ICO in history. Several big players and notable names were investors during its ICO.</span></p>
<p><span lang="EN-CA">Despite being so new, EOS is already making waves in the crypto world. In addition to having the largest ICO ever, EOS is also the </span><span lang="EN-CA"><a href="https://coinmarketcap.com/all/views/all/">6</a><a href="https://coinmarketcap.com/all/views/all/"><sup>th</sup></a><a href="https://coinmarketcap.com/all/views/all/" target="_blank" rel="noopener noreferrer"> largest</a></span><span lang="EN-CA"> cryptocurrency on the planet according to its total market cap. So now that you know a little about EOS, let’s finally take a look at why so many dApps are moving over to the EOS blockchain. </span></p>
<h2><span lang="EN-CA">Reasons for dApps Moving to the EOS Ecosystem</span></h2>
<h3><span lang="EN-CA">It Runs Smoothly</span></h3>
<p><span lang="EN-CA">First of all, EOS is said to run much more smoothly than other blockchains like Ethereum and NEO. When many transactions are being processed on the Ethereum blockchain, it tends to take a decent amount of time and be a little choppy. This type of thing is not an issue with EOS. </span></p>
<p><span lang="EN-CA">Scalability is one of the huge selling points of EOS. It is now able to process over 3000 transactions per second and is believed to </span><span lang="EN-CA">scale to million TPS</span><span lang="EN-CA">. Whether your app only has a couple of users, or millions, EOS will ensure it runs smoothly and won’t experience any hiccups or crashes. The platform is also capable of handling thousands of different dApps at the same time. Certainly this scalability for large and small projects alike is one reason why more dApps are moving to EOS. </span></p>
<h3><span lang="EN-CA">No Transaction Fees for Users</span></h3>
<p><span lang="EN-CA">Another gripe many users and developers of dApps have with the likes of Ethereum is the fact that there is a fee for nearly every kind of transaction. While these transaction fees are usually quite small and manageable, they can definitely add up over time. On the other hand, EOS charges no transaction fees, which is obviously a huge plus for users. </span></p>
<p><span lang="EN-CA">This means tokens can be sent free of charge and there is no cost at all to call a smart contract. Of course, developers still have to pay </span><span lang="EN-CA"><a href="https://www.coindesk.com/ram-it-all-rising-costs-are-turning-eos-into-a-crypto-coders-nightmare" target="_blank" rel="noopener noreferrer">some operating costs</a></span><span lang="EN-CA">. In general, EOS is much more efficient than other options as it uses a delegated proof-of-stake (DPoS) consensus algorithm that doesn’t require traditional mining. </span></p>
<h3><span lang="EN-CA">Increased Transaction Speeds</span></h3>
<p><span lang="EN-CA">In addition to the platform and dApps running smoothly, and transactions being free, EOS also boasts faster transactions than most other blockchains. As mentioned before, EOS can process thousands and thousands of transactions per second, while many other blockchain systems are only capable of hundreds per second. </span></p>
<p><span lang="EN-CA">By having faster transactions, you ensure that users will have a better experience on your dApp as they won’t have to wait for their transactions to go through. While other blockchain systems could make strides to improve their speed, they have a lot of catching up to do. </span></p>
<p><span lang="EN-CA">So essentially, it is the scalability, speed and low fees that is drawing many creators, developers and publishers to EOS. It remains to be seen just how many dApps will ultimately be hosted on EOS, but plenty have already moved or have said they are planning to do so. While it may be awhile before EOS completely takes over Ethereum for the largest host of dApps, it will be exciting to see what happens as both jockey for the position.</span></p>
<p><span lang="EN-CA">In conclusion, hopefully this article has been able to shed some light on why more dApps are moving to the EOS ecosystem.</span></p>
<hr />
<h4>About The Author:</h4>
<p><a href="https://followmyvote.com/wp-content/uploads/2019/06/Follow-My-Vote-Blog-Content-Contributor-Mary-Ann-Callahan.jpg" rel="attachment wp-att-43086"><img loading="lazy" decoding="async" class="alignnone wp-image-43086 size-thumbnail" src="https://followmyvote.com/wp-content/uploads/2019/06/Follow-My-Vote-Blog-Content-Contributor-Mary-Ann-Callahan-150x150.jpg" alt="Follow My Vote - Blog Content Contributor - Mary Ann Callahan" width="150" height="150" /></a></p>
<h4>Mary Ann Callahan &#8211; Follow My Vote Blog Contributor</h4>
<p>&#8220;As an expert on Bitcoin-related topics, I&#8217;ve found myself as a Journalist at Cex.io &#8211; cryptocurrency exchange. I&#8217;m working on articles related to blockchain security, bitcoin purchase guides or bitcoin regulations in different countries.&#8221; &#8211; Mary Ann Callahan</p>
<hr />
<p>Are YOU interested in contributing an article to Follow My Vote&#8217;s blog?</p>
<p><a href="https://followmyvote.com/contact/">Contact Us</a> today to find out how!</p>
<p>The post <a href="https://followmyvote.com/more-dapps-are-moving-to-the-eos-ecosystem-why/">More dApps are Moving to the EOS Ecosystem &#8211; Why?</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/more-dapps-are-moving-to-the-eos-ecosystem-why/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Public Ledgers Are Not New &#8211; Blockchain Technology Is Just a Digital Version</title>
		<link>https://followmyvote.com/public-ledgers-are-not-new-blockchain-technology-is-just-a-digital-version/</link>
					<comments>https://followmyvote.com/public-ledgers-are-not-new-blockchain-technology-is-just-a-digital-version/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Wed, 03 May 2017 01:15:44 +0000</pubDate>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Open Source Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blockchain]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Public Ledgers]]></category>
		<category><![CDATA[steemit]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=23142</guid>

					<description><![CDATA[<p>Have you ever tried explaining blockchain technology to a friend? With all the industry jargon it can be a bit confusing. In its most simple form, a blockchain is a peer to peer network and a database (public ledger). Did you know that public ledgers have been used for centuries? Blockchain is essentially a more advanced [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/public-ledgers-are-not-new-blockchain-technology-is-just-a-digital-version/">Public Ledgers Are Not New &#8211; Blockchain Technology Is Just a Digital Version</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Have you ever tried explaining blockchain technology to a friend? With all the industry jargon it can be a bit confusing. In its most simple form, a blockchain is a peer to peer network and a database (public ledger).</p>
<p>Did you know that public ledgers have been used for centuries? Blockchain is essentially a more advanced digital version.</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/05/public-ledger.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23151" src="https://followmyvote.com/wp-content/uploads/2017/05/public-ledger.jpg" alt="" width="517" height="209" /></a></p>
<p style="text-align: center;"><a href="https://commons.wikimedia.org/wiki/File:EB1911_Book-keeping_Fig._2_Loose-Leaf_Ledger.jpg" target="_blank" rel="noopener noreferrer">Image Source</a></p>
<p>Stephen Kendal is an advocate of blockchain technology &amp; the applications the tech has for global financial markets and in particular the effects on derivatives &amp; global trade.</p>
<p>Kendal recently wrote an article on <a href="https://steemit.com/blockchain/@stephenkendal/blockchain-public-ledgers-have-been-around-for-centuries-blockchain-is-simply-a-digital-version-of-them" target="_blank" rel="noopener noreferrer">Steemit.com</a> detailing a great explanation for blockchain using old fashioned public ledgers:</p>
<blockquote>
<h5>IT&#8217;S JUST A DATABASE</h5>
<p>Once you have managed to fix someone&#8217;s attention on a Database being nothing more than a digital list of records it is easily then to explain that this digital list of records is no different than the old fashioned written/typed ledger that were around before computers.</p>
<p>By simply breaking it down into bite sized chucks most people will be able to keep up.</p>
<p>Now that they are thinking of a written/typed ledger explain to them that in some occasions these ledgers were made public for everyone to see.</p>
<p>By simply referring back to the old fashioned Public Ledger that have been around for Centuries for the ones that struggle to understand what Blockchain is this is where you have to take them.</p>
<p>Now that they are focused on this old fashioned Public Ledger you are getting close to seal the deal and finally explain what Blockchain is.</p>
<h5>PUT THE TWO TOGETHER</h5>
<p>Having now explained and focusing their mind on Databases and Public Ledgers simply tell them to put the two together.</p>
<p>At this point you simply say that Blockhain is nothing more than a generic name for a Digital Distributed Public Ledger and is in essence a Database that is shared identically across a network of computers.</p></blockquote>
<p><a href="https://steemit.com/blockchain/@stephenkendal/blockchain-public-ledgers-have-been-around-for-centuries-blockchain-is-simply-a-digital-version-of-them" target="_blank" rel="noopener noreferrer">Read the full post on Steemit.com</a></p>
<p><strong>About the author: </strong>Will Long is the Marketing Manager of Follow My Vote.</p>
<p>The post <a href="https://followmyvote.com/public-ledgers-are-not-new-blockchain-technology-is-just-a-digital-version/">Public Ledgers Are Not New &#8211; Blockchain Technology Is Just a Digital Version</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/public-ledgers-are-not-new-blockchain-technology-is-just-a-digital-version/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft Takes Advantage Of Blockchain Tech, Adds New Features To Office.</title>
		<link>https://followmyvote.com/microsoft-takes-advantage-of-blockchain-tech-adds-new-features-to-office/</link>
					<comments>https://followmyvote.com/microsoft-takes-advantage-of-blockchain-tech-adds-new-features-to-office/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Mon, 17 Apr 2017 21:23:21 +0000</pubDate>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Bitcoin blockchain]]></category>
		<category><![CDATA[Ethereum blockchain]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Takes Advantage Of Blockchain Tech]]></category>
		<category><![CDATA[Stampery]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=22700</guid>

					<description><![CDATA[<p>Microsoft Office just got some extraordinary features in the latest update. Office users can now use multiple blockchains to certify and sign important documents. Large corporations tend to store lots of contracts and legal documents in Microsoft Office. Now with the new blockchain features, users can certify and sign documents, to verify they have not [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/microsoft-takes-advantage-of-blockchain-tech-adds-new-features-to-office/">Microsoft Takes Advantage Of Blockchain Tech, Adds New Features To Office.</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Microsoft Office just got some extraordinary features in the latest update. Office users can now use <strong>multiple blockchains</strong> to certify and sign important documents.</p>
<p>Large corporations tend to store lots of contracts and legal documents in Microsoft Office. Now with the new blockchain features, users can certify and sign documents, to verify they have not been tampered with.</p>
<p>The new feature in Office allows validation on both the <strong>Bitcoin blockchain and Ethereum blockchain</strong>.</p>
<p>See the diagram below:</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/04/graph-Microsoft-Blockchain-Tech-New-Features-To-Office..png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-22703" src="https://followmyvote.com/wp-content/uploads/2017/04/graph-Microsoft-Blockchain-Tech-New-Features-To-Office..png" alt="graph - Microsoft Blockchain Tech New Features To Office." width="751" height="297" /></a></p>
<p>These new features are possible because of an Office add-on from <a href="https://stampery.com/" target="_blank" rel="noopener noreferrer">Stampery.</a></p>
<p>Stampery is a company leading the blockchain industry with data certification.</p>
<blockquote><p>&#8220;Both the Bitcoin and the Ethereum blockchains are fully distributed, permissionless and transparent: anyone can access them from anywhere in the world. While the content is not stored in the blockchains, the proofs of the integrity, existence and ownership of such content can be independently verified by anyone, whether it be a sysadmin, a judge in court, a digital forensic or a lawyer. Also, these proofs will remain stored in the blockchain forever, even if Stampery disappears.&#8221;</p></blockquote>
<p><iframe src="//player.vimeo.com/video/156399860?title=0&amp;amp;byline=0" width="425" height="350" allowfullscreen="allowfullscreen"></iframe></p>
<h2>The legality of storing information on a blockchain.</h2>
<blockquote><p>&#8220;In United States Federal Courts, blockchain-based hashing and time stamping can make for exceedingly strong evidence of the authenticity of a document. Computer file hashes are widely-accepted by technology experts and the federal courts as reliable indicators of document identity. Scaled blockchains are widely-accepted by technology experts and academics as reliable data sources. Taken together and applied to the recordation of important documents using Stampery, these technologies can make for a persuasive showing that a disputed document is identical (or not identical) to an original document.&#8221;</p></blockquote>
<p>The Follow My Vote Team applauds Microsoft for taking advantage of blockchain technology and being innovative. We are hardcore believers in the tech and strongly advise all people to learn and study these distributed ledgers.</p>
<p><a href="https://followmyvote.com/online-voting-technology/blockchain-technology/">Learn about blockchain technology.</a></p>
<p><a href="https://steemit.com/blockchain/@kingscrown/microsoft-lets-you-verify-and-certify-documents-on-blockchain-a-bonus" target="_blank" rel="noopener noreferrer">Source: Steemit.com/@kingscrown</a></p>
<p><strong>About the author: </strong>Will Long is the Marketing Manager of Follow My Vote.</p>
<p>The post <a href="https://followmyvote.com/microsoft-takes-advantage-of-blockchain-tech-adds-new-features-to-office/">Microsoft Takes Advantage Of Blockchain Tech, Adds New Features To Office.</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/microsoft-takes-advantage-of-blockchain-tech-adds-new-features-to-office/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Understanding The Graphene Blockchain Ecosystem</title>
		<link>https://followmyvote.com/understanding-the-graphene-blockchain-ecosystem/</link>
					<comments>https://followmyvote.com/understanding-the-graphene-blockchain-ecosystem/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Wed, 12 Apr 2017 20:00:34 +0000</pubDate>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Graphene]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blockchain Ecosystem Mapping]]></category>
		<category><![CDATA[Graphene Blockchain Framework]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=22643</guid>

					<description><![CDATA[<p>There are three main blockchain ecosystems in the market today: the Graphene ecosystem, the Bitcoin ecosystem and Ethereum ecosystem. Follow My Vote CTO, Nathan Hourt, is responsible for owning a critical role in the design and development of the Graphene Toolkit, which was first built for BitShares, a leading crypto-currency that has been credited with several [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/understanding-the-graphene-blockchain-ecosystem/">Understanding The Graphene Blockchain Ecosystem</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There are three main blockchain ecosystems in the market today: the Graphene ecosystem, the Bitcoin ecosystem and Ethereum ecosystem.</p>
<p>Follow My Vote CTO, Nathan Hourt, is responsible for owning a critical role in the design and development of the Graphene Toolkit, which was first built for BitShares, a leading crypto-currency that has been credited with several industry innovations.</p>
<p>The Graphene blockchain framework also powers the Steem blockchain, PeerPlays blockchain and Golos blockchain.</p>
<p><a href="https://steemit.com/bitshares/@pnc/graphene-ecosystem-mapping" target="_blank" rel="noopener noreferrer">@pnc on Steemit.com</a> shared this Graphene blockchain ecosystem mapping. Follow My Vote is featured in the registry section.</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/04/Graphene_Ecosystem.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-22646" src="https://followmyvote.com/wp-content/uploads/2017/04/Graphene_Ecosystem.png" alt="Graphene Ecosystem" width="1003" height="761" /></a></p>
<p>It is really cool to see all the projects and apps utilizing Graphene technology in one graphic.</p>
<h2 id="magicdomid2" class="primary-author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z"><span class="author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z b">Definition of Blockchain</span></h2>
<p id="magicdomid3">A blockchain is an audit trail for a database which is managed by a network of computers where no single computer is responsible for storing or maintaining the database, and any computer may enter or leave this network at any time without jeopardizing the integrity or availability of the database. Any computer can rebuild the database from scratch by downloading the blockchain and processing the audit trail.</p>
<h4 class="primary-author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z">Simplified Blockchain Definition</h4>
<blockquote>
<p class="primary-author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z">&#8220;The blockchain is actually a way to structure data, and the foundation of cryptocurrencies like Bitcoin. This coding breakthrough—which consists of concatenated blocks of transactions—allows competitors to share a digital ledger across a network of computers without need for a central authority. No single party has the power to tamper with the records: the math keeps everyone honest. Forty of the world’s top financial firms are experimenting with the tech.&#8221;</p>
<p class="primary-author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z"><a href="https://fortune.com/2016/05/23/blockchain-definition/" target="_blank" rel="noopener noreferrer">Fortune.com</a></p>
</blockquote>
<h2 class="primary-author-a-z79zmn3wz87zqz72zz74z4z74zz77zaz69zgz79z">Delegated Proof-of-Stake (DPOS)</h2>
<p>The Graphene toolkit utilizes a Delegated Proof of Stake consensus mechanism. This means that the difficulty of producing a block should be proportional to the stake (percent ownership) in the network.</p>
<p>Instead of mining (like Bitcoin and other Proof-of-Work systems) delegates are chosen by the stakeholders of the crypto tokens. Those delegates proceed to run the network with less competition and energy than a Proof-of-Work system. DPOS systems are more efficient and allow for extremely high transaction volumes, as demonstrated by BitShares and Steem.</p>
<p>Other blockchains to use DPOS:  <a href="https://en.wikipedia.org/wiki/Peercoin" target="_blank" rel="nofollow noopener noreferrer">Peercoin</a> and <a href="https://en.wikipedia.org/wiki/Nxt" target="_blank" rel="nofollow noopener noreferrer">Nxt</a></p>
<p><a href="https://steemit.com/bitshares/@testz/bitshares-history-transactions-as-proof-of-stake-tapos" target="_blank" rel="noopener noreferrer">More on Delegated Proof-of-Stake</a></p>
<p><a href="https://followmyvote.com/its-alive-follow-my-vote-launches-blockchain-voting-software-on-the-bitshares-blockchain/">Learn about Follow My Vote&#8217;s blockchain voting software.</a></p>
<p><strong>About the author: </strong>Will Long is the Marketing Manager of Follow My Vote.</p>
<p>The post <a href="https://followmyvote.com/understanding-the-graphene-blockchain-ecosystem/">Understanding The Graphene Blockchain Ecosystem</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/understanding-the-graphene-blockchain-ecosystem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What&#8217;s In Store For Blockchain In 2017?</title>
		<link>https://followmyvote.com/whats-in-store-for-blockchain-in-2017/</link>
					<comments>https://followmyvote.com/whats-in-store-for-blockchain-in-2017/#respond</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Mon, 23 Jan 2017 20:35:15 +0000</pubDate>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Open Source Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2017]]></category>
		<category><![CDATA[Banks]]></category>
		<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[blockchain]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Ethereum]]></category>
		<category><![CDATA[Follow My Vote]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=15252</guid>

					<description><![CDATA[<p>Blockchain technology is the backbone of Bitcoin. But since its inception in 2009, the technology has grown to support many use cases and projects around the world. 2017 will be a big year for blockchain. In this blog post, we cover the top areas of the blockchain industry and what we can expect for blockchain in [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/whats-in-store-for-blockchain-in-2017/">What&#8217;s In Store For Blockchain In 2017?</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Blockchain technology is the backbone of Bitcoin. But since its inception in 2009, the technology has grown to support many use cases and projects around the world.</p>
<p>2017 will be a big year for blockchain. In this blog post, we cover the top areas of the blockchain industry and what we can expect for blockchain in 2017.</p>
<h3>There are 7 Banks that want to go live with blockchain in 2017.</h3>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/Blockchain-banck-2017-follow-my-vote.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15263" src="https://followmyvote.com/wp-content/uploads/2017/01/Blockchain-banck-2017-follow-my-vote.jpg" alt="Blockchain bank 2017 - follow my vote" width="892" height="200" /></a></p>
<p>A recent <a href="https://www.coindesk.com/digital-trade-chain-banks-blockchain-2017/" target="_blank" rel="noopener noreferrer">CoinDesk article</a> reveals that 7 major European banks are partnering on a new blockchain-based trade finance platform called the Digital Trade Chain (DTC).</p>
<p>They have a tentative plan to launch in Q3-Q4 of 2017.</p>
<blockquote><p>Those backing the platform’s development are looking to establish a secure place to manage open account trade transactions for both domestic and international commerce. DTC utilizes a permissioned ledger, with authorized parties allowed to submit transactions on the platform.</p>
<p>Open account trade transactions involve products being shipped before the actual payment is due, meaning that trust among the transaction’s parties is imperative. With DTC, those plugged into the system will be able to track the progression of those transactions, from initiation to settlement.</p>
<p>Thus far, the banks involved – KBC, Deutsche Bank, HSBC, Natixis, Rabobank, Société Générale and UniCredit – have signed a memorandum of understanding that lays out the basic groundwork for future development. That said, the banks are looking to launch DTC sometime in 2017, with an eye to building support in markets like France, Germany and the UK.</p></blockquote>
<h3>Conferences involving blockchain in 2017</h3>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/blockchain-conference-follow-my-vote.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15258" src="https://followmyvote.com/wp-content/uploads/2017/01/blockchain-conference-follow-my-vote.jpg" alt="blockchain in 2017" width="900" height="194" /></a></p>
<p>A conference that caught our eye recently is the MIT Technology Review Conference: The Business of Blockchain.</p>
<p>The event will be held at the MIT Media Lab on April 18, 2017. The purpose of the one-day conference is &#8220;to explore the opportunities and challenges associated with public digital ledgers, or blockchains.&#8221;</p>
<p>Blockchains have the power to create entirely new kinds of businesses and more people are starting to realize this everyday.</p>
<p>Blockchain is still relatively new. The industry is still in its infancy. We can expect a variety of new use cases to be introduced in 2017.</p>
<h3>Bitcoin in 2017</h3>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/bitcoin-in-2017-follow-my-vote.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15262" src="https://followmyvote.com/wp-content/uploads/2017/01/bitcoin-in-2017-follow-my-vote.jpg" alt="bitcoin in 2017" width="900" height="351" /></a></p>
<p>Bitcoin is the largest and most well know blockchain project. It is currently traded all around the world and more businesses are beginning to accept Bitcoin as a means of payment.</p>
<p>In addition to growth and adoption, Bitcoin will focus on security and scalability. The DAO hack demonstrated the need for advanced security protocols for all blockchain projects. <a href="https://fee.org/articles/blockchain-predictions-for-2017/" target="_blank" rel="noopener noreferrer">Scalability is also an issue.</a>  &#8220;Today the Bitcoin network is restricted to a sustained rate of 3.3 tps (7 tps theoretical) due to the bitcoin protocol restricting block sizes to 1MB. Scalability will remain the holy grail of blockchain technology.&#8221;</p>
<h3>Ethereum in 2017</h3>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/ethereum-in-2017-follow-my-vote-.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15259" src="https://followmyvote.com/wp-content/uploads/2017/01/ethereum-in-2017-follow-my-vote-.jpg" alt="ethereum in 2017" width="900" height="225" /></a></p>
<p>Many people believe the public blockchain with the most attainable and impactful scalability roadmap is <a href="https://ethereum.org/" target="_blank" rel="noopener noreferrer">Ethereum.</a></p>
<p>Here are some of the <a href="https://fee.org/articles/blockchain-predictions-for-2017/" target="_blank" rel="noopener noreferrer">Ethereum projects</a> to look out for:</p>
<blockquote>
<p id="281d" class="graf graf--p graf-after--p"><a class="markup--anchor markup--p-anchor" href="https://infura.io/" target="_blank" rel="noopener noreferrer" data-href="https://infura.io/">Infura</a> is an enterprise-grade <a class="markup--anchor markup--p-anchor" href="https://blog.infura.io/getting-started-with-infura-28e41844cc89" target="_blank" rel="noopener noreferrer" data-href="https://medium.com/infura/getting-started-with-infura-28e41844cc89#.q17zzv5et">Ethereum-based</a> blockchain infrastructure being used in IoT, and in conjunction with the public Ethereum blockchain and Inter Planetary File System (IPFS). Developers interface with <a class="markup--anchor markup--p-anchor" href="http://www.davidroon.com/blog/2016/11/13/the-future-of-dapps-programming-with-lightwallet-infura" target="_blank" rel="noopener noreferrer" data-href="http://www.davidroon.com/blog/2016/11/13/the-future-of-dapps-programming-with-lightwallet-infura">Infura</a> via Web3/RPC.</p>
<p id="015b" class="graf graf--p graf-after--p"><a class="markup--anchor markup--p-anchor" href="https://metamask.io/" target="_blank" rel="noopener noreferrer" data-href="http://www.metamask.io">MetaMask</a> is a bridge that allows you to visit the distributed web of tomorrow in your browser today. It allows you to run Ethereum dApps right in your browser without running a full Ethereum node.</p>
<p class="graf graf--p graf-after--p"><a class="markup--anchor markup--p-anchor" href="https://blockapps.net/" target="_blank" rel="noopener noreferrer" data-href="http://www.blockapps.net">BlockApps</a> is an enterprise-grade Ethereum-based blockchain infrastructure solution used in banking, payments, insurance, supply chain and others. BlockApps is designed to provide a permissioned Ethereum environment which easily operates at scale, allowing applications to handle a high volume of transactions per second. Developers can build interfaces with their permissioned blockchain using a REST API.</p>
</blockquote>
<h3>Steemit in 2017</h3>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14592" src="https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1.jpg" alt="steemit in 2017" width="1200" height="630" srcset="https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1.jpg 1200w, https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1-300x158.jpg 300w, https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1-1024x538.jpg 1024w, https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1-768x403.jpg 768w, https://followmyvote.com/wp-content/uploads/2016/08/Steemit-Follow-My-Vote-1-1-720x378.jpg 720w" sizes="(max-width: 1200px) 100vw, 1200px" /></p>
<p><strong>Steemit.com is the world’s fastest growing decentralized social media platform.</strong> <a href="https://steemit.com/" target="_blank" rel="noopener noreferrer">Steemit</a> connects to a robust blockchain database called Steem. This blockchain database distributes rewards in cryptocurrency to the users who bring the best content (blogs, comments, videos etc.) to the Steemit site.</p>
<p>On January 17th, 2017 Steemit.com was featured on Forbes.com. Author, Roger Aitken covered the <a href="https://steemit.com/steemit/@steemitblog/steemit-2017-roadmap">2017 comprehensive roadmap</a> for Steemit.com.</p>
<p>The big news surrounds the Steemit.com migration to Amazon Web Services, the world&#8217;s largest hosting provider. Steemit has racked up over 120,000 registered users in around 6 months and they need to be able to handle more traffic as the platform grows.</p>
<p>Steemit Co-founder &amp; CEO, Ned Scott is quoted several times throughout the article:</p>
<blockquote><p> “2017 will be our banner year and the community will see a ton of upgrades from now until the end of March. Migrating hosting to reputable third parties allows us to focus all of our time and attention on development of the site, software, and community – not on scaling or maintaining servers or hosting infrastructure.”</p></blockquote>
<h3>Follow My Vote in 2017</h3>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14869" src="https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1.jpg" alt="" width="1200" height="558" srcset="https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1.jpg 1200w, https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1-300x140.jpg 300w, https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1-1024x476.jpg 1024w, https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1-768x357.jpg 768w, https://followmyvote.com/wp-content/uploads/2016/09/Follow-My-Vote-Logo-blue-blockchain-pattern-1200-px-1-720x335.jpg 720w" sizes="(max-width: 1200px) 100vw, 1200px" /></p>
<p>Follow My Vote continues to pioneer end-to-end verifiable blockchain voting software in 2017. See our <a href="https://github.com/followmyvote" target="_blank" rel="noopener noreferrer">Github repo</a> for updates on our software.</p>
<p>In 2016, we managed to get featured on <a href="https://followmyvote.com/featured-on-forbes-blockchain-voting/">Forbes.com</a> and successfully integrated our stake-weighted voting software with the<a href="https://followmyvote.com/its-alive-follow-my-vote-launches-blockchain-voting-software-on-the-bitshares-blockchain/"> BitShares blockchain</a>.</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/Follow-My-Vote-phone-wide.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15266" src="https://followmyvote.com/wp-content/uploads/2017/01/Follow-My-Vote-phone-wide.jpg" alt="Follow My Vote phone wide" width="968" height="300" /></a></p>
<p>It’s important to note that, when designing our stake-weighted voting system’s architecture, we designed it in such a way to ensure that our blockchain voting software was portable from one blockchain to another. (<a href="https://followmyvote.com/contact/" target="_blank" rel="noopener noreferrer">contact us if you are interested in a custom blockchain voting solution</a>)</p>
<p>2016 was filled with momentous achievements for Follow My Vote. Here you can see we reached out to and networked with some of the top technology leaders and politicians. (Gary Johnson &amp; John McAfee featured)</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2017/01/Follow-my-vote-Gary-Johnson-John-Mcafee.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15268" src="https://followmyvote.com/wp-content/uploads/2017/01/Follow-my-vote-Gary-Johnson-John-Mcafee.jpg" alt="Follow my vote Gary Johnson John Mcafee" width="1000" height="400" /></a></p>
<p>We anticipate that 2017 will be filled with many Follow My Vote software releases and partnerships, in an effort to bring end-to-end verifiable blockchain voting to the world.</p>
<p><a href="https://followmyvote.com/the-difference-between-our-stake-weighted-one-person-one-vote-voting-systems/">Learn about our stake weighted blockchain voting software.</a></p>
<p><a href="https://followmyvote.com/the-difference-between-our-stake-weighted-one-person-one-vote-voting-systems/">Learn about our 1 person 1 vote blockchain voting software.</a></p>
<p><strong>About the author: </strong>Will Long is the Marketing Manager of Follow My Vote.</p>
<p>The post <a href="https://followmyvote.com/whats-in-store-for-blockchain-in-2017/">What&#8217;s In Store For Blockchain In 2017?</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/whats-in-store-for-blockchain-in-2017/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How We Can Stop All Voter Fraud</title>
		<link>https://followmyvote.com/how-we-can-stop-all-voter-fraud/</link>
					<comments>https://followmyvote.com/how-we-can-stop-all-voter-fraud/#comments</comments>
		
		<dc:creator><![CDATA[Will Long]]></dc:creator>
		<pubDate>Fri, 23 Sep 2016 20:02:41 +0000</pubDate>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Voting]]></category>
		<category><![CDATA[Ambassadors]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[voter fraud]]></category>
		<category><![CDATA[We Are Change]]></category>
		<guid isPermaLink="false">https://followmyvote.com/?p=14941</guid>

					<description><![CDATA[<p>Follow My Vote Ambassador, Nicolas Guillermo recently wrote a an article on wearechange.org entitled &#8220;How We Can Stop All Voter Fraud&#8221;. The article goes into depth on the issues Follow My Vote is tackling and the technology we are using to combat voter fraud. Each time there is an election held anywhere in the democratic [&#8230;]</p>
<p>The post <a href="https://followmyvote.com/how-we-can-stop-all-voter-fraud/">How We Can Stop All Voter Fraud</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Follow My Vote Ambassador, Nicolas Guillermo recently wrote a an article on <a href="https://wearechange.org/can-stop-voter-fraud/" target="_blank" rel="noopener noreferrer">wearechange.org</a> entitled &#8220;How We Can Stop All Voter Fraud&#8221;. The article goes into depth on the issues Follow My Vote is tackling and the technology we are using to combat voter fraud.</p>
<p><a href="https://followmyvote.com/wp-content/uploads/2016/09/We-are-Change-logo-follow-my-vote.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-14943" src="https://followmyvote.com/wp-content/uploads/2016/09/We-are-Change-logo-follow-my-vote.png" alt="we-are-change-logo-follow-my-vote" width="1080" height="345" /></a></p>
<blockquote><p>Each time there is an election held anywhere in the democratic world, you will undoubtedly hear words like wrongdoing, mishandling, voter fraud and misconduct being thrown around. It has been this way since the dawn of democracy in ancient Athens almost 2500 years ago. Today, technology offers a solution so secure, even banks are adopting it’s principles.</p>
<p>What if there was a way that allowed for a secure voting process with greater transparency? What if this same way got rid of not just the highly insecure hackable voting machines, but also all of the inept polling officer and the long queues that every voter is forced to deal with?</p>
<p>This is where “Follow My Vote” comes in. Launched on July 4, 2012 by Adam Ernest, a Virginia Tech graduate, Follow My Vote functions on the principle of open and honest elections. How? By providing an online open source voting platform that promises transparency and a hassle-free electoral process with block-chain technology. Starting with a small group of  block-chain enthusiasts, Follow My Vote is now getting <a href="https://www.forbes.com/sites/realspin/2016/08/30/block-the-vote-could-blockchain-technology-cybersecure-elections/">national attention in the mainstream</a>. Representing at events like Politicon and Freedom Fest, Follow My Vote is making waves to grow grassroots support for their technology.</p>
<p>Although block-chain was invented for use with Bitcoin, the independent digital currency that is competing with the dollar, now, the ultra-safe technology for transactions is being adopted by <a href="https://www.morganstanley.com/ideas/big-banks-try-to-harness-blockchain">private banks to compete</a>. Our nation’s military wing, <a href="https://www.dhs.gov/science-and-technology/news/2016/08/12/news-release-dhs-st-awards-13-million-small-businesses-cyber">Homeland Security, is investing research into blockchain</a>, to use it for cyber-security. Using “distributed ledgers” block chain is decentralized. Hacks are virtually impossible because a hack would have to occur on all distributed ledgers at the same time. Hacking a block-chain is virtually impossible with today’s most sophisticated hacking equipment.</p>
<p><a href="http://archives.1wise.es/advantage-insecurities-2008.pdf">Our current voting system is completely hackable</a>. We all know <a href="http://hemi.es.its.nyu.edu/journal/1_1/mankin_print.pdf">we face sure risk remaining with the status quo</a>? What kind of country are we to leave for future generations <a href="http://blackboxvoting.org/">if we don’t even have a secure voting</a> methods anyone can most certainly trust? When high-profile security firms endorse it, and it is estimated that around <a href="https://www.coindesk.com/2016-bitcoin-challenge-100-million-users/">10 million worldwide </a>trust it for currency transactions with BitCoin, it’s only time before “we the people” claim our natural rights to ensure our votes are counted, with secure and transparent systems far more reliable than our current ones.</p>
<p>Back in 2012, world trends forecaster Gerald Celente predicted: <a href="https://www.facebook.com/gcelente/posts/542237169125130">“If we can bank online, we can vote online.”</a></p>
<p>Today, with blockchain technology, security is secure and everything can be audited. Blockchain is more certain than any methods of traditional vote counting by paper or conventional voting machines. Today, the viable transparency is becoming acceptable by top industries.</p>
<p>So while the online platform eliminates the need to be physically present to cast your ballot. Using verifiable identification for security, making sure no one can vote for anyone else, and that all voters are citizens, FMV also allows users to literally follow their vote and see where it is applied. This again proves beneficial in two ways. First, by allowing each user to ensure that their vote is not tampered with, and second, by empowering every voter with the ability to audit the election for themselves thus restoring faith in the democratic process. Vote details are put on a public ledger that allows FMV users to view and even vet an election’s results.</p>
<p>This has basically been the dream since the invention of the internet. But security was a major concern. Thanks to Follow My Vote’s un-crackable, asymmetrical cryptography, decentralized, verifiable public ledger system, and open-source software, all of these security concerns have not just been greatly reduced but solved to a great extent.</p>
<p>Bitcoin Magazine is archiving non-currency block-chain applications. Many, non-currency applications are being developed all over the world. Block-chain voting may just be one of the most game-changing applications of this revolutionary new technology.</p>
<p>You have a right to vote and that vote should not be compromised. With a history of voter fraud in this country, isn’t it time the people called for integrity in our voting system? A democratic republic must have a standard for vote security, now with the technology, we should settle for no less than 100% assurance in election results. It’s time the people unite and demand a solution that can secure a future, for and by the people in the U.S.A.</p>
<p>After a successful presentation in Sacramento, California, the company is now working to find states and communities interested in online voting. <a href="https://followmyvote.com/initial-alpha-release/?r=follow-my-vote&amp;channel=facebook&amp;adid=2016-8-16-1249&amp;utm_source=facebook&amp;utm_content=2016-8-16-1249">Follow My Vote Alpha</a> has now been released and the software is ready for private enterprise to test drive the software. Once major endorsements, peer-reviewed studies and public outcry call for auditable online voting, it won’t be long before the grassroots of the United States, conservatives, liberals, and everyone in between, unite under the common banner of vote security. Follow My Vote technology will be the future of elections.</p></blockquote>
<p><a href="https://followmyvote.com/wp-content/uploads/2016/09/Nicolas-Guillermo-author-credit-Follow-My-Vote.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-14944" src="https://followmyvote.com/wp-content/uploads/2016/09/Nicolas-Guillermo-author-credit-Follow-My-Vote.jpg" alt="nicolas-guillermo-author-credit-follow-my-vote" width="720" height="201" /></a></p>
<p>Nicolas is a former Follow My Vote Ambassador, whom has spent time educating people around the world on blockchain voting and Follow My Vote.</p>
<p>The post <a href="https://followmyvote.com/how-we-can-stop-all-voter-fraud/">How We Can Stop All Voter Fraud</a> appeared first on <a href="https://followmyvote.com">Follow My Vote</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://followmyvote.com/how-we-can-stop-all-voter-fraud/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
