<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Alex Guba on Medium]]></title>
        <description><![CDATA[Stories by Alex Guba on Medium]]></description>
        <link>https://medium.com/@gubanotorious?source=rss-f277ee6f34f------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*CyeEfJmTbfM0dgTsaWclkg.png</url>
            <title>Stories by Alex Guba on Medium</title>
            <link>https://medium.com/@gubanotorious?source=rss-f277ee6f34f------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 16 May 2026 22:57:20 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@gubanotorious/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Bridge Identity Summer 2021 Update]]></title>
            <link>https://medium.com/bridgeprotocol/bridge-identity-summer-2021-update-765344702cd9?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/765344702cd9</guid>
            <category><![CDATA[regtech]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[digital-identity]]></category>
            <category><![CDATA[kyc]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Fri, 23 Jul 2021 02:37:22 GMT</pubDate>
            <atom:updated>2021-07-23T02:37:22.214Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*cyT4DWMfyUdZO5P1SYLJ0w.png" /></figure><p>We are excited to announce the current mobile release and future planned releases for the Bridge Identity Platform in 2021. If you are not familiar with the Bridge Identity platform, please read <a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e">What is the Bridge Identity Platform</a>? to learn more.</p><h3>Bridge Mobile Passport Release v1.1</h3><p>Bridge Mobile Passport has been accepted and released to the public on the iOS App Store for both iPhone and iPad devices. Version 1.1 marks a major milestone in supporting portable mobile identity for all users across both Android and iOS devices. In addition to cross-platform support, Bridge Mobile Passport also addressed usability issues, as well as several security enhancements and bug fixes.</p><h3>Roadmap And Timeline Updates</h3><p>At Bridge, we are often quiet about updates as we’re busy building and working to identify real-world use cases and platforms to adopt to expand the case for the Bridge Identity Platform. We have several projects in flight that we are tentatively looking to release later in 2021, so we wanted to share some of them with the community.</p><h4>Adding more support for real-world use cases</h4><p>The Bridge Identity Platform is constantly evolving the types of verifications and claims that can be issued. As real-world use cases arise, we are always looking to address the needs by adding support for additional claim types that can be used in the Bridge Passport and Bridge Mobile Passport by our users.</p><p><strong>COVID-19 Vaccination Verification<br></strong>Users will be able to have their COVID-19 Vaccination documentation verified and use the verified claim in their Bridge Passport to prove their vaccination status.</p><p><strong>Photo Verification<br></strong>A key to real-world use of digital identity in-person is demonstrating the user with the Bridge Passport and associated claims is actually the individual presenting the passport. Users will be able store a verified photo in their Bridge Passport to present along with their claims to prove visual identity as well for in-person transactions.</p><p><strong>Phone Number Verification<br></strong>A simple but overlooked verification is phone number verification. This can be especially helpful in online fraud prevention and allow users to verify an additional piece of information. This verification and claim type will be available on the platform as well.</p><p><strong>ERC-721 NFT Support<br></strong>An interesting phenomenon in the last year was the NFT boom. As we watched this unfold, we saw a use case for Bridge Identity emerging. We wanted to make it easy for users to not only store their NFT assets in their Bridge Passport, but we also saw where we could help enhance the security around the management and transfer of these assets. Using the Bridge Identity Platform to manage and transfer, users can be sure of the identity of the sender and recipient for each NFT transfer to prevent any transfer to bad actors.</p><h4>Binance Smart Chain Support</h4><p><strong>Launch BRDG BSC-20 Hybrid Token on Binance Smart Chain</strong><br>The BRDG Token is already a hybrid token that can be swapped between NEO and Ethereum. Users will now have the option of swapping and using BRDG token across all three supported chains. This will drastically lower transaction costs and enable greater access to BRDG token for our users. Another benefit will be the greater reach into the DeFi space by leveraging decentralized exchanges like Pancake Swap, only available on BSC.</p><p><strong>Launch Bridge Identity Platform on Binance Smart Chain<br></strong>All Bridge smart contracts will be implemented to enable Bridge Users to publish their digital identity for use by any decentralized applications on Binance Smart Chain for verification.</p><p>Stay tuned as we progress through 2021 for more updates and releases!</p><p>To learn more or view documentation and source code to get started with Bridge Identity, visit the links below:</p><p><a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e"><strong>What is the Bridge Identity Platform?</strong></a></p><p><a href="https://wwwbridgeprotocol.io"><strong>Website</strong></a></p><p><a href="https://github.com/bridge-protocol"><strong>GitHub</strong></a></p><p>To keep up to date with the latest updates and announcements, become part of the community and follow Bridge Protocol on our social platforms:</p><p><a href="https://t.me/BridgeProtocol"><strong>Telegram</strong></a></p><p><a href="https://twitter.com/BridgeProtocol"><strong>Twitter</strong></a></p><p><a href="https://www.reddit.com/r/iambridgeprotocol/"><strong>Reddit</strong></a></p><p><a href="https://www.facebook.com/BridgeProtocol/"><strong>Facebook</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=765344702cd9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/bridge-identity-summer-2021-update-765344702cd9">Bridge Identity Summer 2021 Update</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bridge Identity Platform Real-World Use Cases]]></title>
            <link>https://medium.com/bridgeprotocol/bridge-identity-platform-real-world-use-cases-113b483a8ba7?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/113b483a8ba7</guid>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[digital-identity]]></category>
            <category><![CDATA[bridge-protocol]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Tue, 15 Dec 2020 16:26:35 GMT</pubDate>
            <atom:updated>2020-12-15T16:26:35.570Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*MiS2Ex0XV0sIW_f0MaGAuQ.png" /></figure><p>If you are not familiar with the Bridge Identity platform, please read <a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e">What is the Bridge Identity Platform</a>? to learn more.</p><h3>Use Cases</h3><p>Currently when we provide our physical license or identification, we disclose far more information about ourselves than required to simply determine eligibility for most real-world applications. For example, it is not relevant for the bouncer at a local club to know your name and address when they simply need to determine you are over a certain age to enter. Having access to your personal information creates security and privacy risks, and can easily be avoided.</p><p>Bridge Identity has countless real-world use cases beyond the above scenario. Current digital identity projects are primarily focused on online and blockchain based identity claims, while ignoring the bigger use cases in everyday life. It is possible that online connectivity and blockchain networks are not always available, so it is important to have a digital identity that can be both used online, on-chain, as well as in the real-world without relying on blockchain networks. This is where Bridge Identity comes in and supports a wide range of use-cases that runs the gamut across all connectivity situations.</p><p>Being able to operate in the real world and off-chain, as well as offering “one and done” validation, Bridge also drastically reduces costs for the end user as well as the organizations requiring the user to be verified. Once the user’s information is verified by a partner on the Bridge Marketplace, their Bridge Identity can be re-used for any application in the future, and any organization can accept that identity for verification purposes.</p><h4>Token Sales and Initial Coin Offerings</h4><p>The crypto industry must meet Know-Your-Customer (KYC) and Anti-Money Laundering (AML) compliance obligations in order to conduct ICO’s, STO’s and other Token Sales. Without meeting these obligations they expose themselves to substantial risk with local and international law.</p><h4>Exchanges and Trading</h4><p>Financial markets and exchanges are obligated to meet KYC and AML compliance standards as well. Depending on the asset being traded, there is an even higher level of due diligence required to allow users to trade.</p><h4>Gambling and Gaming</h4><p>For gambling and gaming, similar KYC and AML requirements apply. In the United States, not only do age restrictions apply when gabling or wagering, but state or province becomes a key factor in determining eligibility since the laws vary greatly state by state or even municipality by municipality. Proper identity verification is key to avoid legal issues around illegal gambling.</p><h4>Custom Credentials and Certificates</h4><p>Organizations can issue and verify custom certificates of completion or compliance. With Bridge Identity, organizations whether it be a school or an online blockchain training course can issue their own credentials and certificates of completion that can later be verified by third-parties to determine eligibility. This could even expand into discount codes and other promotional eligibility certificates.</p><h4>Controlled and Restricted Purchases</h4><p>Controlled and restricted items require age verification. The most common scenarios in the real-world would be the purchase of tobacco, alcohol, and even medical and recreational marijuana. You must be of a certain age or even hold a medical card to be allowed to purchase these items. When purchasing online, certain items cannot be shipped to individuals under a certain age, and cannot be shipped to certain states. Retailers accept an unnecessary amount of legal responsibility if they are not performing the proper due diligence on the purchaser of the item.</p><h4>Access to Adult Oriented Material</h4><p>Adult websites require verification of age and location to allow access to adult material. Depending on the content and location of the user, laws will vary as to whether or not that content can be viewed. Many online sites use a credit card as means of verification of age, but in reality it’s just a simple way for them to get your card on file for a nominal fee and then potentially overcharge you without your consent in the future. Furthermore, there is no need for your name, address, or any other personal information to determine eligibility to the material. Whatever you are into is your business, the site doesn’t need to know your name to know that you are allowed to view the midgets and gerbils.</p><h4>Bars, Clubs, and Concerts</h4><p>In-person venues often have restrictions on who is allowed to enter. Whether it’s a local bar, a local club, or even a concert, there are age restrictions, promotions, and tickets associated with entry and price of admission. Bridge allows all of these pieces of information to be provided without disclosing any personal information that is not essential to verification.</p><p>To learn more or view documentation and source code to get started with Bridge Identity, visit the links below:</p><p><a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e"><strong>What is the Bridge Identity Platform?</strong></a></p><p><a href="https://wwwbridgeprotocol.io"><strong>Website</strong></a></p><p><a href="https://github.com/bridge-protocol"><strong>GitHub</strong></a></p><p>To keep up to date with the latest updates and announcements, become part of the community and follow Bridge Protocol on our social platforms:</p><p><a href="https://t.me/BridgeProtocol"><strong>Telegram</strong></a></p><p><a href="https://twitter.com/BridgeProtocol"><strong>Twitter</strong></a></p><p><a href="https://www.reddit.com/r/iambridgeprotocol/"><strong>Reddit</strong></a></p><p><a href="https://www.facebook.com/BridgeProtocol/"><strong>Facebook</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=113b483a8ba7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/bridge-identity-platform-real-world-use-cases-113b483a8ba7">Bridge Identity Platform Real-World Use Cases</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bridge Identity Platform 3.1 with Mobile Support Released]]></title>
            <link>https://medium.com/bridgeprotocol/bridge-identity-platform-3-1-with-mobile-support-released-85c5ae7afb7b?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/85c5ae7afb7b</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[digital-identity]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[bridge-protocol]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Tue, 15 Dec 2020 07:04:32 GMT</pubDate>
            <atom:updated>2020-12-15T07:04:32.134Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*26tEUdCxDY3FMmyR5Sv8fQ.png" /></figure><p>We are excited to release Bridge Identity 3.1 Beta to the community! If you are not familiar with the Bridge Identity platform, please read <a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e">What is the Bridge Identity Platform</a>? to learn more.</p><h3>What’s new in version 3.1?</h3><p>This release takes Bridge Identity to yet another level with increased access to BRDG token and liquidity, and offers mobile support to let users use their Bridge Identity with their mobile device in both the online and physical worlds.</p><h4>More Ways to Acquire Bridge Token</h4><p>We’ve expanded access to the Bridge Token (BRDG) across multiple decentralized exchanges and liquidity providers on both Ethereum and Neo blockchain networks. Bridge Token (BRDG) now has pairs on <a href="https://switcheo.exchange/markets/BRDG_NEO">Switcheo</a> and <a href="https://info.uniswap.org/pair/0xa23c4aa7050425d2922956bedd9d513da1b4a977">Uniswap</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/878/1*Jx0epXQkDNayRQzJZNgYpw.png" /></figure><p>Users can even acquire directly using ETH from the blockchain wallet in the Bridge Passport Browser Extension when using Uniswap.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/601/1*G5GE_JILNRD3OPNRBiomcg.jpeg" /></figure><h4><strong>Bridge Passport Mobile</strong></h4><p>Bridge Passport Mobile for Android is available with this release. Users can import their Bridge Passport and all related claims to their mobile device to enable them to use their digital identity on the go.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/1*aTj01SAp2-CXno-kTCnuHA.png" /></figure><h4>Bug Fixes</h4><p>All outstanding bugs to date in the Bridge Passport Browser Extension are resolved in this release.</p><p>To learn more or view documentation and source code to get started with Bridge Identity, visit the links below:</p><p><a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e"><strong>What is the Bridge Identity Platform?</strong></a></p><p><a href="https://www.bridgeprotocol.io"><strong>Website</strong></a></p><p><a href="https://github.com/bridge-protocol"><strong>GitHub</strong></a></p><p>To keep up to date with the latest updates and announcements, become part of the community and follow Bridge Protocol on our social platforms:</p><p><a href="https://t.me/BridgeProtocol"><strong>Telegram</strong></a></p><p><a href="https://twitter.com/BridgeProtocol"><strong>Twitter</strong></a></p><p><a href="https://www.reddit.com/r/iambridgeprotocol/"><strong>Reddit</strong></a></p><p><a href="https://www.facebook.com/BridgeProtocol/"><strong>Facebook</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=85c5ae7afb7b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/bridge-identity-platform-3-1-with-mobile-support-released-85c5ae7afb7b">Bridge Identity Platform 3.1 with Mobile Support Released</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bridge Identity Platform 3.0 Released]]></title>
            <link>https://medium.com/bridgeprotocol/bridge-identity-platform-3-0-released-532cd1e72b4b?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/532cd1e72b4b</guid>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[identity-management]]></category>
            <category><![CDATA[self-sovereign-identity]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Fri, 12 Jun 2020 22:58:03 GMT</pubDate>
            <atom:updated>2020-06-13T01:50:22.520Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*3dcP5a34ehUKAmrwWi8zrA.png" /></figure><p>We are excited to release Bridge Identity 3.0 Beta to the community! If you are not familiar with the Bridge Identity platform, please read <a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e">What is the Bridge Identity Platform</a>? to learn more.</p><h3>What’s new in version 3.0?</h3><p>This release takes Bridge Identity to the next level with substantial updates that will offer easier application integration, increased blockchain support, and an improved user experience.</p><h4>Cross-Chain Bridge Token and Smart Contract Support</h4><p>A major feature of this release is the support for both the NEO and Ethereum blockchain networks.<strong> </strong>Bridge Token and Bridge Identity are fully implemented and supported on both chains.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/452/1*8Gr6LysRiUhT_iecGb7-cA.png" /></figure><p>The token was initially created in 2018 on NEO as a NEP-5 token, but with this release, the token is now also on the Ethereum blockchain as an ERC-20 token. The cross-chain token can swapped easily between chains using the Bridge Passport Browser Extension. The cross-chain token and smart contract support enables ecosystem projects on either chain to take full advantage of Bridge Token payments and on-chain Bridge Identity in their applications.</p><h4>Updated Bridge Network Explorer</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*57sq3yXKTXthB8uif8LIYw.jpeg" /></figure><p>The Bridge Network Explorer was redesigned and extended to handle the expanded functionality of the Bridge Network. Alongside an updated user interface and mobile fixes, the explorer now also monitors and displays the distribution of the Bridge Token across both the NEO and Ethereum networks.</p><h4>Redesigned Passport Browser Extension</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r2yMNCx0io2lURJHdMmjWA.png" /></figure><p>The Bridge Passport Browser Extension user interface was redesigned from the ground-up with usability and extensibility in mind. In addition to the redesign, the interface was also rewritten to implement the Vue.js framework for a more robust user experience, while also enabling the extension to be easily maintained and extended with new functionality in the future.</p><h4>Restructured Core SDK and Integration Components</h4><p>The Bridge Protocol Software Development Kit and integration components were restructured to make integration with Bridge Protocol and Bridge Network simpler. We have improved the structure, added more tests, and added more sample code to make it simple for developers to integrate the platform into their applications.</p><h4>Serverless Bridge Network and Marketplace Infrastructure</h4><p>We’ve made substantial upgrades to the underlying Bridge Network and Bridge Marketplace infrastructure to enhance performance and offer a more cost-effective and resilient network by leveraging serverless technology.</p><p>To learn more or view documentation and source code to get started with Bridge Identity, visit the links below:</p><p><a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e"><strong>What is the Bridge Identity Platform?</strong></a></p><p><a href="https://docs.bridgeprotocol.io"><strong>Documentation Site</strong></a></p><p><a href="https://github.com/bridge-protocol"><strong>GitHub</strong></a></p><p>To keep up to date with the latest updates and announcements, become part of the community and follow Bridge Protocol on our social platforms:</p><p><a href="https://t.me/BridgeProtocol"><strong>Telegram</strong></a></p><p><a href="https://twitter.com/BridgeProtocol"><strong>Twitter</strong></a></p><p><a href="https://www.reddit.com/r/iambridgeprotocol/"><strong>Reddit</strong></a></p><p><a href="https://www.facebook.com/BridgeProtocol/"><strong>Facebook</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=532cd1e72b4b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/bridge-identity-platform-3-0-released-532cd1e72b4b">Bridge Identity Platform 3.0 Released</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is the Bridge Identity Platform?]]></title>
            <link>https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/a17b6fa42b3e</guid>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[identity-management]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[self-sovereign-identity]]></category>
            <category><![CDATA[neo-blockchain]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Fri, 12 Jun 2020 22:56:03 GMT</pubDate>
            <atom:updated>2020-06-12T22:56:03.441Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*3dcP5a34ehUKAmrwWi8zrA.png" /></figure><p>Bridge Identity is a unique approach to sovereign digital identity that can be applied to a wide range of applications and environments, making it ideal for securely managing and transmitting digital identity. In this article, we will look at an overview of the components that make up the platform and how it can be used.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/471/0*Al8VD5LEd4PLjYVL.png" /></figure><p>The Bridge Protocol is at the core of the solution, which is simply a peer-to-peer protocol that allows for the secure transmission of portable digital identity. It enables individuals, applications, and devices to send and receive digital identity claims in both on and offline environments. The ability to request and transmit identity in an offline environment opens the potential for real-world applications by removing dependency on Internet connectivity and unpredictable blockchain networks at the point of identity verification. The protocol can easily be implemented in web and mobile applications, blockchain distributed applications, and even in hardware devices.</p><h3>Components of the Bridge Identity Platform</h3><p>The platform is made up of several components that allow for a robust, secure, and fully integrated sovereign digital identity solution.</p><h4>Bridge Passport</h4><p>The passport is the container for an individual’s sovereign digital identity. A user’s passport will contain their Bridge Identity cryptographic keys, their NEO and Ethereum wallets and cryptographic keys for on-chain transactions, and their verified information about their identity in the form of secure, portable claims.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/460/1*4maALOJPepVDc3iF1rs3hA.png" /></figure><h4>Bridge Network</h4><p>The Bridge Network is a public network that can facilitate communication between Bridge identities as well as provide an optional layer of trust when Bridge identities interact with one another. The Bridge Network maintains a record of known Bridge Network partner identities that have been verified as trusted organizations, as well a record of any blacklisted identities to remove bad actors from the network.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/416/1*QVEEgHAm0Z_t0Za4H0koEQ.png" /></figure><h4>Bridge Marketplace</h4><p>The Bridge Marketplace is a part of the Bridge Network that provides a marketplace that connect individuals with marketplace partners that provide services to verify their personal information and build their digital identity in exchange for Bridge Tokens.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/426/1*IWe5H9qnO49GEt2aN2ypQA.png" /></figure><p>A key aspect of the Bridge Marketplace is that it keeps decentralization in mind, as it only serves to connect users with Bridge Marketplace partners. Once the user selects a marketplace partner and sends the appropriate network fees, the user is directed to the partner to complete the identity verification process.</p><p>Any payments, personal information, or identity claims are transmitted directly between the user and marketplace partner. The network does not collect or maintain any personal information about the user aside from facilitating the initial request for service between the user and partner.</p><h4>Bridge Passport Browser Extension</h4><p>The Bridge Passport Browser Extension is the official software client that provides a user interface to manage Bridge Identity and connect to the Bridge Network. The extension enables end users to create, verify, and use their digital identity in both web and blockchain based applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r2yMNCx0io2lURJHdMmjWA.png" /></figure><p>Using the extension, users are able to:</p><ul><li>Interact with marketplace partners to purchase verification services</li><li>Build their digital identity by importing verified information</li><li>Provide their identity to browser-based applications that implement the Bridge Protocol</li><li>Manage NEO and Ethereum blockchain wallets to send token payments and swap tokens cross-chain</li><li>Publish their digital identity to the NEO and Ethereum blockchain networks for use with decentralized applications</li></ul><h4>Bridge Token and Smart Contracts</h4><p>The fees for services on the Bridge Network and Bridge Marketplace are paid using the Bridge Token (BRDG). The Bridge Token was initially created and launched on the NEO blockchain in 2018. As of the 3.0 release, the Bridge Token is now not only available on NEO as a NEP-5 token, but also on the Ethereum blockchain as an ERC-20 token. The token can be easily be swapped between the chains using the Bridge Passport Browser Extension.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/452/1*8Gr6LysRiUhT_iecGb7-cA.png" /></figure><p>Bridge Smart Contracts are also deployed on both the NEO and Ethereum networks to allow Bridge Identity to be published on the blockchain. The cross-chain token and smart contracts are a huge step forward as they expand the use of the Bridge Token and Bridge Identity to projects on either network.</p><h3>Using Bridge Identity in Real-World Applications</h3><h4>Browser-Based Applications</h4><p>Any browser-based application can implement the Bridge Protocol to verify a user’s digital identity. Identity claims can be transmitted securely between the Bridge Passport Browser Extension and the requesting application.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/392/1*ds-er38l4ktSrHiznBjCyw.png" /></figure><p>Since the Bridge Network only serves as an optional point of trust in the decentralized solution, registration by the site implementing the protocol is not required. However, it is highly recommended that all organizations and applications implementing the protocol register with the network so they can provide an additional level of trust for ecosystem identities they interact with.</p><h4>Blockchain Distributed Applications</h4><p>Bridge identity can be optionally published to the <a href="https://neo.org/">NEO</a> and <a href="https://ethereum.org/">Ethereum</a> blockchain networks to provide asynchronous on-chain identity verification to ecosystem projects on either network.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/493/1*ScVbCG4EVtraRMGeGWqmsw.png" /></figure><p>Blockchain distributed applications can simply interact directly with the Bridge Smart Contract to verify identity without interacting directly with the user in real-time.</p><h4>Disconnected and Hardware Applications</h4><p>It is even possible to implement the Bridge Protocol in real-world applications without any online connectivity. The protocol can be implemented in mobile or hardware applications to securely transmit digital identity directly without relying on a synchronized and available blockchain node or Internet connectivity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/398/1*lBlpVvYVVxTRPGjFkVF4mw.png" /></figure><p>If connectivity is available, the participants can use the Bridge Network as a an additional point of trust to verify blacklisting, but it is not required to transmit and verify the secure identity claims.</p><p>To view documentation and source code to get started with Bridge Identity, visit the links below:</p><p><a href="https://docs.bridgeprotocol.io"><strong>Documentation</strong></a></p><p><a href="https://github.com/bridge-protocol"><strong>GitHub</strong></a></p><p>To keep up to date with the latest updates and announcements, become part of the community and follow Bridge Protocol on our social platforms:</p><p><a href="https://t.me/BridgeProtocol"><strong>Telegram</strong></a></p><p><a href="https://twitter.com/BridgeProtocol"><strong>Twitter</strong></a></p><p><a href="https://www.reddit.com/r/iambridgeprotocol/"><strong>Reddit</strong></a></p><p><a href="https://www.facebook.com/BridgeProtocol/"><strong>Facebook</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a17b6fa42b3e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/what-is-the-bridge-identity-platform-a17b6fa42b3e">What is the Bridge Identity Platform?</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Bridge ID platform will transform how you manage and protect your digital identity]]></title>
            <link>https://medium.com/bridgeprotocol/the-bridge-platform-will-transform-how-you-manage-and-protect-your-digital-identity-63a2e0df9328?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/63a2e0df9328</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[digital-identity]]></category>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[security]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Fri, 01 Jun 2018 02:31:12 GMT</pubDate>
            <atom:updated>2018-06-01T18:10:05.531Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*iqbPM0ztrd7ARoKSov94Mg.jpeg" /></figure><p>Before I joined the Bridge Protocol team, I was heavily focused on digital asset management and e-commerce solutions leveraging blockchain technology. In pursuing these avenues, I quickly noticed that one area of concern was not only the representation of the asset, but also the representation of the individual. Just like in the real world when dealing with assets and verification, identity and trust is the foundation that all transactions and ownership are built on.</p><p>With this in mind, it has helped us develop a platform that will build a truly unique system of creating, managing, and verifying digital identity for individuals on the blockchain that is unlike any concept to date. We believe that digital identity is applicable to everyone in the new economy, and with that comes the responsibility to ensure that the identity and personal data of every individual is protected while still providing robust utility and regulatory compliance.</p><p>The Bridge ID platform is designed to be a public API that will enable the development of robust identity driven solutions. The platform will be available to any application developer to enable them to build apps and system integrations that will take full advantage of the platform to create, manage, and verify digital identity on the blockchain. With nothing more than an address on the blockchain, users will be able to manage their digital identities and provide proof of eligibility anonymously in situations where today they would be obligated to provide sensitive information that could lead to identity theft and other malicious behavior by bad actors.</p><p>The Bridge team is working around the clock to ensure that we are building the next evolution of online identity that will address current issues such as: GDPR compliance, KYC compliance for ICO’s and financial exchanges, and all of the other inevitable regulations coming our way in response to the recent violations in privacy and data security.</p><p>Stay tuned — I am confident Bridge Protocol is going to change the way you create, manage, and think about your digital identity.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=63a2e0df9328" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bridgeprotocol/the-bridge-platform-will-transform-how-you-manage-and-protect-your-digital-identity-63a2e0df9328">The Bridge ID platform will transform how you manage and protect your digital identity</a> was originally published in <a href="https://medium.com/bridgeprotocol">BridgeProtocol</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating a NEO Blockchain Hosted Private Network on Microsoft Azure in Under 30 Minutes]]></title>
            <link>https://medium.com/@gubanotorious/creating-a-neo-blockchain-hosted-private-network-on-microsoft-azure-in-under-30-minutes-4d38c6bf6f3c?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/4d38c6bf6f3c</guid>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[ubuntu]]></category>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Sun, 18 Mar 2018 18:30:30 GMT</pubDate>
            <atom:updated>2018-03-20T15:55:43.978Z</atom:updated>
            <content:encoded><![CDATA[<p>When working in a team environment, demo environment, or classroom setting, it can be beneficial to have a hosted “sandbox” to work from instead of depending on local instances on each developer or demo machine. Using Microsoft Azure and the neo-privatenet-docker image, you can run a private hosted NEO Blockchain. This will get you developing on NEO faster, and remove the additional resource requirements on your dev box. It also allows you to take full advantage of Azure hosting functionality for your VM (backups, etc) if needed.</p><h3>Create a Microsoft Azure Account</h3><p>Go create a an account at <a href="https://azure.microsoft.com">https://azure.microsoft.com</a> to get started.</p><p>Note: Azure is currently offering free trial accounts for 30 days with a $200 spend limit: <a href="https://azure.microsoft.com/en-us/offers/ms-azr-0044p/">https://azure.microsoft.com/en-us/offers/ms-azr-0044p/</a>.</p><h3>Create a Virtual Machine</h3><p>You could also create a Windows based VM, but the cost is higher and unnecessary for running the docker image. So for this example, we will create an Ubuntu Server 16.04 VM.</p><p><strong>Choose to Install a VM Running Ubuntu Server 16.04</strong><br>1. Click on All Resources or Virtual Machines from the left pane<br>2. Click +Add at the top<br>3. Choose to install Ubuntu Server 16.04 VM from the Azure Marketplace</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*S3PQKjH2G2Z2Bh_t0_x3tA.png" /></figure><p><strong>Creating a SSH Key</strong><br>If you don’t already have a SSH key, this is far more secure than a password for multiple purposes(Git, FTP, SSH, etc).</p><p>If you don’t know how to create a SSH key, read here:<br><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-ssh-keys-detailed">https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-ssh-keys-detailed</a></p><p>If you are going to use PuTTY to connect, it’s a little different:<br><a href="https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps">https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps</a></p><p><strong>Set the Basics for your new VM </strong><br>Set the name, disk type, whether you want to SSH with a public key or use a password (SSH key is the preferred method as it’s more secure, but for a privatenet a password is probably okay), the resource group this VM will run under (for billing), and finally the location of the datacenter this VM will be running from.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/629/1*RuUfhfVqBFVn-EVY9YyFIA.png" /></figure><p><strong>Select the size of the VM you want to install </strong><br>There are a variety of configurations you will be able to install. A smaller VM than the recommended options will do (click “View All” to see more options). A B2S should be more than sufficient - if not, you can always scale it up later.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*JOCjfX-PAzTCVoBKxFRI9g.png" /></figure><p><strong>Set the firewall rules to allow incoming RPC traffic <br></strong>We can do this in the VM settings, Network Sescurity Group (firewall), and create a new group for our VM.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*7j_ik7UkaMt9raY2gnNtWw.png" /></figure><p><strong>Allow Inbound Requests for NEO Privatenet RPC</strong><br>After we create the group, we need to add an inbound rule to allow requests coming in on ports 20332–20336, 30332–30336</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*_f8fucNFlJGLyzi7lUkisQ.png" /></figure><p><strong>Review and Create</strong><br>Review the settings summary of the VM, and click to Create.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*Dd2PDOyLpRSZWv2e2dBwMg.png" /></figure><h3>Connecting to the Virtual Machine</h3><p><strong>Get the IP or Domain Name to access the Virtual Machine</strong><br>Watch your notifications and VM list to check on the status of your VM deployment. Once it is running, choose it from the menu to see the details and find the IP of your created VM. Optionally you can access this VM by a Domain Name as well, but you will need to configure this manually.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dG58JJt8L5PjhIfwgUoxyQ.png" /></figure><p><strong>Create a Fully Qualified Domain Name (optional)</strong><br>If you want to use a Domain Name to access the privatenet instead of just the IP, you can easily configure one by going to the Public IP Address configuration for your VM and defining the Domain Name to use.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d_mm-bvIS6d4vjHbbvc-TQ.png" /></figure><p><strong>SSH to the Virtual Machine</strong><br>You will need a SSH Client. On Linux and OSX, SSH usually comes as a standard installed package from the command line, on Windows you can download and install PuTTY from: <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html</a></p><p>Once you have a SSH client installed, SSH to the IP or FQDN of the Virtual Machine you just created.</p><h3>Configure the Virtual Machine</h3><p>Once you have successfully logged into your VM via SSH, you will need to install the docker image for the NEO Private net. If you have any issues with these quick install instructions, <a href="https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1">full installation instructions for docker can be found here</a>.</p><h4>Installing Docker</h4><p><em>&gt; curl -fsSL </em><a href="https://download.docker.com/linux/ubuntu/gpg"><em>https://download.docker.com/linux/ubuntu/gpg</em></a><em> | sudo apt-key add -<br>&gt; sudo add-apt-repository “deb [arch=amd64] </em><a href="https://download.docker.com/linux/ubuntu"><em>https://download.docker.com/linux/ubuntu</em></a><em> $(lsb_release -cs) stable”<br>&gt; sudo apt-get update<br>&gt; apt-cache policy docker-ce</em></p><h4>Verify Docker is Installed and Running</h4><p><em>&gt; sudo systemctl status docker</em></p><h4>Installing the Docker Image</h4><p>Now, we need to install the <a href="https://hub.docker.com/r/cityofzion/neo-privatenet/">neo-privatenet</a> image to create 4 NEO Nodes that comes with a wallet pre-loaded with a ton of NEO and GAS. If you leave this image running, over time you will claim even more GAS.</p><p><strong>Installing the Privatenet Docker Image</strong></p><p>To install the image, we simply need to pull the image, and then start the privatenet.</p><p><em>&gt; docker pull cityofzion/neo-privatenet<br>&gt; docker run — rm -d — name neo-privatenet -p 20333–20336:20333–20336/tcp -p 30333–30336:30333–30336/tcp cityofzion/neo-privatenet</em></p><p>As always, huge credit to <a href="https://medium.com/u/6bf89d66f78f">Chris Hager</a> for creating this image.</p><h4>Opening the Wallet Containing the Privatenet NEO / GAS</h4><p>There is a wallet that is already loaded with tons of NEO / GAS on the privatenet. The details on loading this wallet can be found in the <a href="https://hub.docker.com/r/cityofzion/neo-privatenet/">neo-privatenet</a> instructions, however since we are running a non-localhost instance of the privatenet, we need to first make sure we change our configuration to connect <a href="https://github.com/neo-project/neo-gui">neo-gui</a> or <a href="https://github.com/CityOfZion/neo-python">neo-python</a> to the correct host before running the respective client (default for privatenet settings currently assume localhost to be the host for a privatenet connection).</p><p><strong>Connecting clients to the hosted privatenet<br></strong>To modify the configuration to point to the hosted privatenet permanently, we need to modify our protocol.json files to change the default of localhost.</p><p><strong>Configuration changes:</strong><br>Open protocol.json and change localhost/127.0.0.1 to the IP or FQDN of the hosted privatenet, example:</p><p><em>…<br>“SeedList”: [<br> “&lt;Your IP or FQDN&gt;:20333”,<br> “&lt;Your IP or FQDN&gt;:20334”,<br> “&lt;Your IP or FQDN&gt;:20335”,<br> “&lt;Your IP or FQDN&gt;:20336”<br> ],<br> “RPCList”:[<br> “&lt;Your IP or FQDN&gt;:20332”<br> ],<br>…</em></p><p><strong>File location(s):</strong><br>Neo-gui: <em>&lt;neo-gui installation path&gt;/protocol.json </em><br>Neo-python: <em>&lt;neo-python installation path&gt;/neo/data/protocol.json</em></p><p>Once the configuration is updated, we’re ready to launch the client and connect to the hosted privatenet.</p><p><strong>Note: </strong>an additional option neo-python gives us is a command line switch, so we do not have to permanently modify our configuration. To run with the command line switch to connect to the host, simply execute:</p><p><em>&gt; </em>np-prompt<em> -p &lt;your host IP or FQDN&gt;</em></p><h4>Manually Distributing NEO / GAS to Other Users (if needed)</h4><p>To distribute NEO or GAS to other users / wallets, use <a href="https://github.com/neo-project/neo-gui">neo-gui</a> or <a href="https://github.com/CityOfZion/neo-python">neo-python</a> to load the privatenet wallet as described above, and transfer tokens to the other wallets.</p><h4>NEO / GAS Faucet for your Privatenet (update forthcoming)</h4><p>If you are using the privatenet in a team or classroom setting, it is highly beneficial to have a faucet to allow users to request GAS / NEO for testing to auto-deploy to their wallet so you don’t have to manually transfer the tokens.</p><p>If you need a faucet before then, check out the <a href="https://github.com/CityOfZion/neo-faucet">neo-faucet</a> project to set up and host a faucet for the privatenet. The same protocol.json changes will be required there to connect to the hosted privnet as outlined above for the neo-gui and neo-python clients.</p><p><strong>Note: </strong>There are plans to include a faucet in the neo-privatenet docker image in the near future, so if you don’t need a faucet immediately, it could make sense to wait on that update.</p><h3>Need additional help?</h3><p><strong>City of Zion</strong><br>If you need further assistance in getting started, feel free to join the <a href="https://discord.gg/zRq6Jba">City of Zion NEO Smart Economy Discord Server</a>. The community will help you get set up in no time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4d38c6bf6f3c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Test Networks and Fund Requests for Smart Contract and dApp Testing on the NEO Blockchain]]></title>
            <link>https://medium.com/@gubanotorious/test-networks-and-fund-requests-for-smart-contract-and-dapp-testing-on-the-neo-blockchain-583a1795412?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/583a1795412</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Thu, 01 Mar 2018 07:30:47 GMT</pubDate>
            <atom:updated>2018-03-01T12:11:56.709Z</atom:updated>
            <content:encoded><![CDATA[<p>You have some smart contracts built, but you need to test them beyond just using the neo-debugger. There are several different environments you can deploy your Smart Contract to, but you are going to need GAS to test.</p><p>Getting NEO/GAS is relatively simple, however it can be confusing at first not only to know which network you should be testing on, but also then how to receive funds to test on that given network. This short article will give you a 10 minute crash-course in getting the funds you need on the appropriate network to test your smart contracts and dApps.</p><h3>Available Test Networks</h3><p>There are multiple environments that can be used to test while developing for the NEO Blockchain. Each network has a different amount of traffic, and a different level of testing it should be used for. When starting out, it’s hard to know which network to use. It’s really pretty simple and comes down to the scope and how much testing you’ve done on your Smart Contract or dApp.</p><h4>Privnet (or Private Network)</h4><p>The privnet is your own private NEO blockchain you can run on your computer and have total control over.</p><p>This is the easiest and fastest place to get rolling with testing, here you run your own docker image and you can simply reset the image and essentially have an unlimited supply of GAS and NEO to test your application (okay, well not <em>unlimited</em>, but enough to do whatever it is you need to do for sure). <a href="https://medium.com/u/6bf89d66f78f">Chris Hager</a> has done an excellent job setting this up and providing detailed instructions here: <a href="https://medium.com/proof-of-working/how-to-run-a-private-network-of-the-neo-blockchain-d83004557359">https://medium.com/proof-of-working/how-to-run-a-private-network-of-the-neo-blockchain-d83004557359</a></p><p><strong>When to use: </strong>If you are working on a new project that will need multiple deploys, or if you need to watch all transactions on the blockchain closely, Privnet is the clear choice here. You can do multiple deploys, essentially have unlimited GAS/NEO, and reset it any time you like. Also, this is your own private sandbox, so there are no other transactions going on but your own, so it’s less “noisy”.</p><h4>City of Zion Testnet</h4><p>This is a public test network run by the City of Zion open source community.</p><p><strong>When to use:</strong> Once you are confident your dApp or Smart Contract is working as intended through testing on your Privnet, it’s time to choose a Testnet to deploy to and test in more of a “live” sandbox. On the test networks you will have other users and transactions, and get a better sense of what a live deploy will be like. Given the ease of getting funds, my recommendation is to use the City of Zion Testnet.</p><h4>NEO Testnet</h4><p>This is the Testnet of the NEO Smart Economy parent organization.</p><p><strong>When to use: </strong>The use case for this network is essentially the same for the CoZ Testnet, however the traffic and size is much larger in scope.</p><h3>Wallets and Addresses to Receive Funds</h3><p>In order to receive funds, you need to create a wallet and have an address that will hold the funds (and subsequently, this will also be the wallet you would use to send funds in the context of your Smart Contract or dApp). There are a few options when it comes to wallets, but NEO-GUI is the official wallet and client app of NEO, so that’s what I will use in the context of this article. If you are working with other clients such as neo-python, there may be a variety of differences, but the fundamental concepts will still apply.</p><p>NEO-GUI requires a full synchronized local copy of the blockchain to process transactions, but you can use NEO-GUI to processs transactions on <em>any</em> of the NEO networks — Privnet, NEO Testnet, CoZ Testnet, and even the NEO Mainnet.</p><p><strong>Note:</strong> You can use the same wallet file and address on all networks, simply change the underlying configuration. You will be scoped to that address on whatever network you are configured for.</p><h3>Syncing the Blockchain of theTarget Network</h3><p>If your blockchain isn’t synchronized to the block level of a transaction (for example, a transaction that sent funds to your address), your balance will not reflect that transaction. In order to see an accurate balance of a wallet or to create transactions using those funds, the blockchain needs to be fully synchronized.</p><h4><strong>Settings and Changes Needed to Synchronize with a Network</strong></h4><p>When using NEO-GUI and switching networks, there are a few changes that you need to make to update the configuration (see links to network specific configurations below). Any time you change networks, you need to:</p><ol><li>Delete /&lt;your-neo-gui-path&gt;/peers.dat</li><li>Delete the contents of /&lt;your-neo-gui-path&gt;/ChainTestNet/</li><li>Update /&lt;your-neo-gui-path&gt;/protocol.json</li><li>Update /&lt;your-neo-gui-path&gt;/config.json</li></ol><p>Click the links below to view example configurations for the various networks (these can also be found deployed with NEO-GUI in the root directory as alternatively named .json files whose contents can simply be copied into the primary file):</p><p><a href="https://gist.github.com/gubanotorious/4c69a44787f01ed6bd226bf4c848b4f4">P</a>rivnet: <a href="https://gist.github.com/gubanotorious/4c69a44787f01ed6bd226bf4c848b4f4">[View]</a></p><p>CoZ Testnet <a href="https://gist.github.com/gubanotorious/9852771838291373af17e763b90a3e1f">[View]</a></p><p>NEO Testnet <a href="https://gist.github.com/gubanotorious/a7023fe01aec98e165b4c7ccc3cad538">[View]</a></p><h4>Bootstrapping</h4><p>Bootstrapping will help you save a ton of time getting your local blockchain synchronized by downloading a snapshot of the blockchain instead of syncing a few blocks at a time using network nodes.</p><p>You can always find the latest available bootstrap files for the NEO and CoZ Testnets (and Mainnet as well if needed) here: <a href="https://github.com/CityOfZion/awesome-neo">https://github.com/CityOfZion/awesome-neo</a></p><p>Download the appropriate file for the target network, then unzip the contents to: /&lt;your-neo-gui-path&gt;/ChainTestNet/</p><h4>Checking Synchronization Progress</h4><p>You can monitor the synchronization of blocks in NEO-GUI by looking in the bottom left corner.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/377/1*Q24c3OLIVsYQdqBlpwvN2w.png" /></figure><p>The number of total blocks will vary by network, but you can find out the block count for a given network by using Neoscan.</p><p><strong>Privnet</strong><br>This synchronization is quick (around 1.2k blocks), so you should be fully synced in a matter of a few minutes.</p><p><strong>CoZ Testnet<br></strong>The CoZ testnet is a bit larger (420k blocks at current), so synchronization for this network really needs to be bootstrapped or you will be waiting quite awhile. You can see the network information here: <a href="https://coz.neoscan-testnet.io/">https://coz.neoscan-testnet.io/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1023/1*NJnKuXaEFj32z6mqP8mHyA.png" /></figure><p><strong>NEO Testnet <br></strong>Obviously even larger than the CoZ Testnet (1.2mil blocks at current), this definitely requires bootstrapping and has substantially more activity. You can see the network information here: <a href="https://neoscan-testnet.io/">https://neoscan-testnet.io/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1021/1*LpCCTgi4rYyGk8po5vgUQQ.png" /></figure><h3>Requesting GAS / NEO for Testing</h3><h4>Privnet</h4><p>You can simply restart your docker image and you’ll be reloaded with all the NEO and GAS you need. You don’t need to make any requests. Just start the docker, configure your wallet for the Privnet, and you should have plenty of GAS and NEO.</p><h4>CoZ Testnet</h4><p>City of Zion has set up a convenient faucet to get your NEO and GAS from for the City of Zion Testnet. Simply go to <a href="http://faucet.cityofzion.io/">http://faucet.cityofzion.io/</a> and provide your CoZ Testnet address.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/957/1*bycu7Zc5H9715iw0x7MK7g.png" /></figure><p>Shortly after, you will have 2000 GAS and 100 NEO (at current) sent to the provided address. You don’t need to do anything else.</p><h4>NEO Testnet</h4><p>The fund request from NEO is a bit more cumbersome and takes a bit longer, and seemingly a bit trickier to find (the link to the NEO Testnet NEO/GAS request link is buried in the NEO Test Network documentation). To request NEO / GAS, go to <a href="https://neo.org/Testnet/Create">https://neo.org/Testnet/Create</a> and fill out the form to make the request. It takes a little bit (sometimes a few days) to get a response to your request.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*Qc7_8G-VtNbt-oDDBxDE6A.png" /></figure><p><strong>Finding your Public Key<br></strong>Open NEO GUI, Right Click your Address</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/589/1*3stAT75g3NWj88_xI3jd5w.png" /></figure><p><strong>Retrieving your Funds<br></strong>NEO will send you an e-mail with instructions on how to retreive your funds (assuming your request was granted).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/676/1*L2ieyIRwFcPyRuW93eB_eg.png" /></figure><p><strong>Create a Multi-Signature Contract Address using NEO-GUI</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/828/1*2w-I4TnuncVncvfEfuUq4Q.png" /></figure><p>The e-mail provides us with all the details on how to retreive the funds. You will need to add <em>their</em> public key to the contract, add <em>your</em> public key to the contract (see above), and set the minimum signature number to <em>1</em>. Once you confirm, a contract address will be created in your wallet:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/558/1*tKmZ5NMRALvOrTONoWEleg.png" /></figure><p>Sometimes it is necessary to rebuild the index for your wallet to get accurate balances. The way to do this is in the “Wallet” menu:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/313/1*wkLnreZtcWc9qO_5hqeUiw.png" /></figure><p>Once you rebuild, you should see funds in your Contract Address. From there, you can transfer the funds to your own address of your choosing by selecting Transaction -&gt; Transfer, and click the + to add a payment.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/826/1*lbVf238T7ddue1VYRuVZyA.png" /></figure><p>Once the transaction is processed, you will have funds in the target address, drawn from the multi-sig contract that contained the funds.</p><p>And that’s it. You now should have a fully synchronized wallet with funds available on your target network, and you should be ready to go develop and deploy Smart Contracts and dApps for the NEO Blockchain!</p><h3>Need additional help?</h3><p><strong>City of Zion</strong><br>If you need further assistance in getting started, feel free to join the <a href="https://discord.gg/zRq6Jba">City of Zion NEO Smart Economy Discord Server</a>. The community will help you get set up in no time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=583a1795412" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating and running a NEO Node on Microsoft Azure in under 30 minutes]]></title>
            <link>https://medium.com/@gubanotorious/creating-and-running-a-neo-node-on-microsoft-azure-in-under-30-minutes-ad8d79b9edf?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/ad8d79b9edf</guid>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[ubuntu]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Sun, 25 Feb 2018 08:11:35 GMT</pubDate>
            <atom:updated>2018-03-15T15:17:29.912Z</atom:updated>
            <content:encoded><![CDATA[<p>The NEO blockchain is rapidly growing, and with that growth comes increased network demands on the infrastructure and protocol. To this end, as a community we can help NEO grow as a stable and performant platform by running seed nodes (this is not the same as Consensus Nodes, which have their own standards and voting process). Mainnet seed nodes will simply help add bandwidth, stability and performance to the NEO Blockchain.</p><h3>Create a Microsoft Azure Account</h3><p>Go create a an account at <a href="https://azure.microsoft.com">https://azure.microsoft.com</a> to get started.</p><p>Note: Azure is currently offering free trial accounts for 30 days with a $200 spend limit: <a href="https://azure.microsoft.com/en-us/offers/ms-azr-0044p/">https://azure.microsoft.com/en-us/offers/ms-azr-0044p/</a>. For around $75 a month, you can put up a single NEO node (every node counts), so with that free account, you could easily run 2 nodes for free for 30 days to help the NEO blockchain.</p><h3>Create a Virtual Machine</h3><p>You could also create a Windows based VM, but the cost is substantially higher and unnecessary for running a NEO Node. So for this example, we will create an Ubuntu Server 16.04 VM.</p><p><strong>Choose to Install a VM Running Ubuntu Server 16.04</strong><br>1. Click on All Resources or Virtual Machines from the left pane<br>2. Click +Add at the top<br>3. Choose to install Ubuntu Server 16.04 VM from the Azure Marketplace</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*S3PQKjH2G2Z2Bh_t0_x3tA.png" /></figure><p><strong>Creating a SSH Key</strong><br>If you don’t already have a SSH key, this is far more secure than a password for multiple purposes(Git, FTP, SSH, etc).</p><p>If you don’t know how to create a SSH key, read here:<br><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-ssh-keys-detailed">https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-ssh-keys-detailed</a></p><p>If you are going to use PuTTY to connect, it’s a little different:<br><a href="https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps">https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps</a></p><p><strong>Set the Basics for your new VM </strong><br>Set the name, disk type, whether you want to SSH with a public key or use a password (SSH key is the preferred method as it’s more secure), the resource group this VM will run under (for billing), and finally the location of the datacenter this VM will be running from.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/658/1*0sYfIFqM8i-ohqm4BH5BWA.png" /></figure><p><strong>Select the size of the VM you want to install </strong><br>There are a variety of configurations you will be able to install, it seems that a D3S_v3 with 2 CPU cores and 8GB ram is the minimum configuration for a NEO Node.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*EwMcBbDljigzPY98IEJ8wQ.png" /></figure><p><strong>Set the firewall rules to allow incoming RPC traffic <br></strong>We can do this in the VM settings, Network Sescurity Group (firewall), and create a new group for our VM.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*dISjOtQHZbfT2DXX5CuyjA.png" /></figure><p><strong>Allow Inbound Requests for NEO RPC</strong><br>After we create the group, we need to add an inbound rule to allow requests coming in on ports 10331–10334, 20331–20334</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*1UT4eHgy8SLLZ4bkD4AKZw.png" /></figure><p><strong>Review and Create</strong><br>Review the settings summary of the VM, and click to Create.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*WhT4CR0OwijM413OU8OQcQ.png" /></figure><h3>Connecting to the Virtual Machine</h3><p><strong>Get the IP or Domain Name to access the Virtual Machine</strong><br>Watch your notifications and VM list to check on the status of your VM deployment. Once it is running, choose it from the menu to see the details and find the IP of your created VM. Optionally you can access this VM by a Domain Name as well, but you will need to configure this manually.</p><p><strong>Update:</strong> For nodes to be listed on the City of Zion NEO Monitor, you must use a FQDN, IP addresses are no longer allowed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*-VO0xQbv6zA5hhyOwuz2lA.png" /></figure><p><strong>Create a Fully Qualified Domain Name to your Node </strong><br>If you want to use a Domain Name to access the node instead of just the IP, you can easily configure one by going to the Public IP Address configuration for your VM and defining the Domain Name to use.</p><p><strong>Note: </strong>If you are going to list your node on the CoZ Mainnet NEO Monitor, it is required that you use a FQDN.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Db8-rJ5VD3qKTs8ZDBGmdw.png" /></figure><p>If you want to use your own domain name to point to this node instead of the Azure defined FQDN, you can just create a CNAME record in your DNS that points to this FQDN in azure.</p><p>So, if you wanted to have neonode1.yourdomain.com, you would simply add a CNAME record like this (interface shown is GoDaddy):</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/737/1*Xe6oCLPxQdwjPA7u40pOiw.png" /></figure><p><strong>SSH to the Virtual Machine</strong><br>You will need a SSH Client. On Linux and OSX, SSH usually comes as a standard installed package from the command line, on Windows you can download and install PuTTY from: <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html</a></p><p>Once you have a SSH client installed, SSH to the IP or FQDN of the Virtual Machine you just created.</p><h3>Configure the Virtual Machine</h3><p>Once you have successfully logged into your VM via SSH, you will need to install the dependencies for neo-cli (leveldb, sqlite, dotnet).</p><p><strong>Update: </strong>Since .NET Core is static linked from the neo-cli project, <em>you should not need to install the .NET core</em>. If you end up needing it, instructions on installing .NET Core on Ubuntu 16.04 can be found here: <a href="https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x">https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x</a></p><h4>Install Prerequisites and neo-cli (version 2.7.3 at current)</h4><blockquote>&gt; sudo apt-get install unzip libleveldb-dev sqlite3 libsqlite3-dev libunwind8-dev</blockquote><blockquote>&gt; wget <a href="https://github.com/neo-project/neo-cli/releases/download/v2.7.3/neo-cli-ubuntu.16.04-x64.zip">https://github.com/neo-project/neo-cli/releases/download/v2.7.3/neo-cli-ubuntu.16.04-x64.zip</a></blockquote><blockquote>&gt; unzip neo-cli-ubuntu.16.04-x64.zip</blockquote><h4><strong>Bootstrap your Node</strong></h4><p>It can take a long time to sync the entire mainnet blockchain, but you can download a bootstrap zip that will considerably decrease your sync time by downloading the blockchain files directly instead of trying to sync them actively from other nodes (this will also reduce load from the network). Always check here for the latest available bootstrap files<br><a href="https://github.com/CityOfZion/awesome-neo">https://github.com/CityOfZion/awesome-neo</a></p><p>To bootstrap your node, download the latest S3 bootstrap file (latest as of 3/15/18 to accommodate mainnet upgrades):</p><blockquote>&gt; wget <a href="https://s3.eu-west-2.amazonaws.com/ashant-neo/chain.acc.zip">https://s3.eu-west-2.amazonaws.com/ashant-neo/chain.acc.zip</a></blockquote><p>And unzip the contents to your neo-cli folder</p><blockquote>&gt; unzip <a href="https://s3.eu-west-2.amazonaws.com/ashant-neo/chain.acc.zip">chain.acc.zip</a> -d ./neo-cli/</blockquote><h3>Start the Node and Confirm it is Running</h3><p>To start neo-cli:</p><blockquote>&gt; cd neo-cli<br>&gt; dotnet neo-cli.dll /rpc</blockquote><p>After you see the neo&gt; prompt, send a HTTP POST request to the node you just created from your client machine to make sure the node is running and that your firewall is set up correctly to receive inbound requests. You can simply use curl to send HTTP requests to your running node:</p><blockquote>&gt; curl -X POST \<br><a href="http://52.170.2.63:10333">http://&lt;IP of your node&gt;:&lt;</a>RPC port of your node&gt;\<br>-H ‘Content-Type: application/json’ \<br>-d ‘{ “jsonrpc”: “2.0”, “id”: 5, “method”: “getversion”, “params”: [] }’</blockquote><p>On OSX or Linux, curl should be installed, but on you can either simply <a href="https://curl.haxx.se/download.html">install curl for Windows here</a>, or you could also run a light instance of Ubuntu on Windows as outlined in the “Installing the Windows Subsystem for Linux” section <a href="https://medium.com/@gubanotorious/installing-and-running-neo-python-on-windows-10-284fb518b213">in this article</a>.</p><p>Another nice option is using the <a href="https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US">Advanced REST Client Chrome Extension</a> for testing HTTP requests:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/658/1*gx8DPbcvAkMFvdCfFzXzvA.png" /></figure><p>If your node is running, you should receive a return value that contains something like this:</p><blockquote>{<br> “jsonrpc”: “2.0”,<br> “id”: 5,<br> “result”: {<br> “port”: 10333,<br> “nonce”: 1215806116,<br> “useragent”: “<a href="chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo/NEO:2.7.1/">/NEO:2.7.1/</a>”}<br>}</blockquote><p>It will take a little bit for the remaining blocks to sync even though we bootstrapped, you can check the status of the node by using the commands “show state” and “show node”.</p><p>Now that we know the node works, we’ve got to exit and make sure it can restart itself and run after we leave the SSH session.</p><p>Type “exit” to shut the node down.</p><h3>Install a Supervisor</h3><p>You also need to makes sure that the process keeps running if you close the SSH window or if there is an unexpected system reboot. The correct way to do this is to use a supervisor, we are going to systemd that is standard with Ubuntu:</p><p><strong>First we need to create the service config file and edit it:</strong></p><blockquote>&gt; cd /etc/systemd/system<br>&gt; sudo vi neoseed.service</blockquote><p><strong>The contents of your config file should be something like this:</strong></p><p>(thanks to @metachris for helping in getting the systemd config files together and sharing his configuration)</p><p><em>[Unit]</em><br><em>After=network-online.target<br>Requires=network-online.target</em></p><p><em>[Service]<br>WorkingDirectory=/home/&lt;your_username&gt;/neo-cli<br>ExecStart=/usr/bin/dotnet neo-cli.dll /rpc<br>ExecStop=kill -SIGINT `ps ax | grep neo-cli | grep -v grep | awk ‘{print $1}’`<br>Restart=always<br>StandardInput=tty-force<br>StandardOutput=syslog<br>StandardError=syslog<br>SyslogIdentifier=neoseed<br>User=&lt;your_username&gt;<br>Group=&lt;your_username&gt;</em></p><p><em>[Install]<br>WantedBy=multi-user.target</em></p><p>When done editing, Hit ESC to go to command mode, and type :x to save.</p><p><strong>Now we need to enable the service</strong></p><blockquote>&gt; sudo systemctl enable neoseed<br>&gt; sudo systemctl start neoseed</blockquote><p><strong>And let’s make sure it started successfully</strong></p><blockquote>&gt; systemctl status neoseed</blockquote><p>(For future reference) the commands to manage nanoseed are:<br>&gt; systemctl status neoseed<br>&gt; sudo systemctl start neoseed<br>&gt; sudo systemctl stop neoseed</p><h3>Register the Node to the Network Status Monitor</h3><p>City of Zion has a nice network monitoring web interface that will monitor all of the seed nodes that are reported. Once you have confirmed that your node is running, report it to the network status monitor via the <a href="https://github.com/CityOfZion/neo-mon">neo-mon</a> project.</p><p><strong>Note:</strong> CoZ wants to guarantee that any seed node listed on the NEO Monitor page are not attackers. All seed nodes wishing to be included must be a part of a project, and need to gain prior approval from CoZ in order to to be listed.</p><p>To report your running node(s):</p><ol><li>Fork and clone the <a href="https://github.com/CityOfZion/neo-mon">neo-mon</a> project</li><li>Edit the mainnet node list:</li></ol><blockquote>&lt;your neo-mon checkout folder&gt;/src/assets/json/mainnet.json</blockquote><ol><li>Add your node to the array of nodes in the following format:</li></ol><blockquote>{<br> “protocol”: “http”,<br> “url”: “&lt;IP or FQDN of your Node&gt;”,<br> “location”: “USA”,<br> “locale”: “us”,<br> “port”: “&lt;RPC port of your node&gt;”,<br> “type”: “RPC”<br> }</blockquote><ol><li>Commit your changes to your forked repo master</li><li>Create a pull request to the <a href="https://github.com/CityOfZion/neo-mon">https://github.com/CityOfZion/neo-mon</a> project for your changes.</li></ol><p>And that’s it! You are now running a full NEO Node running on Microsoft Azure, and helping the NEO Smart Economy get stronger!</p><h3>Need additional help?</h3><p><strong>City of Zion</strong><br>If you need further assistance in getting started, feel free to join the <a href="https://discord.gg/zRq6Jba">City of Zion NEO Smart Economy Discord Server</a>. The community will help you get set up in no time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ad8d79b9edf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Installing and Running a NEO Blockchain Node using neo-python on Windows 10]]></title>
            <link>https://medium.com/@gubanotorious/installing-and-running-neo-python-on-windows-10-284fb518b213?source=rss-f277ee6f34f------2</link>
            <guid isPermaLink="false">https://medium.com/p/284fb518b213</guid>
            <category><![CDATA[neo-blockchain]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Alex Guba]]></dc:creator>
            <pubDate>Thu, 08 Feb 2018 21:48:52 GMT</pubDate>
            <atom:updated>2018-03-18T21:53:25.436Z</atom:updated>
            <content:encoded><![CDATA[<p>Running neo-python on Windows can be a challenging task, and at current, appeared to be an impossibility. There are several dependencies that are unsupported on Windows that currently do not appear will have official support any time in the near future. Neo-python is constantly improving, so it’s possible that we will see these dependencies removed at some point in the future, but there are plenty of us that need to get up and running with neo-python today to take advantage of some of the unique functionality it provides.</p><p>This post will provide you with a step-by-step guide to running a neo-python node on Windows 10 using the Microsoft Windows Subsystem for Linux, but will also show you how you can attach Visual Studio Code to do interactive debugging.</p><p><strong>A few notes before we get started:<br></strong>This article includes instructions on the installation of the Windows Subsystem for Linux for users running Windows 10 Fall Creators Update (build 16215) or later. If you are running an older version, it may still be possible to install using lxrun (<a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#for-anniversary-update-and-creators-update-install-using-lxrun">more info can be found here</a>).</p><p><a href="https://medium.com/u/6bf89d66f78f">Chris Hager</a> of <a href="https://medium.com/u/f0cacbf7f71d">City of Zion</a> has done an excellent job of outlining <a href="https://medium.com/proof-of-working/how-to-run-a-private-network-of-the-neo-blockchain-d83004557359">How to run a private network of the NEO Blockchain</a> using <a href="https://github.com/CityOfZion/neo-python">neo-python</a> and <a href="https://github.com/CityOfZion/neo-privatenet-docker">neo-privatenet-docker</a>. These instructions are the basis for a good portion of the configuration in this article, so it would be helpful to be familiar with them.</p><h3>Setting Up the Windows 10 for Python Development</h3><h4>Install Python 3.6.3</h4><p><a href="https://www.python.org/downloads/release/python-363/">https://www.python.org/downloads/release/python-363/</a></p><p><strong>Note:</strong> Be sure to check the box on the installer to “Add Python 3.6 to PATH”</p><h4>Install Git</h4><p><a href="https://git-scm.com/download/win">https://git-scm.com/download/win</a></p><h4>Install Visual Studio Code</h4><p><a href="https://code.visualstudio.com/download">https://code.visualstudio.com/download</a></p><h4>Verify your Environment Variables / PATH include Python and Pip</h4><p>Now that Python is installed, we still need to make sure that we have all the proper definitions in our PATH so we can access the scripts and executables we will need to build and run python applications.</p><p>To check your system PATH variables:</p><blockquote><em>- Go to your </em><strong><em>Start Menu<br></em></strong><em>- Type “Environment Variables” <br>- Choose “</em><strong><em>Edit the system environment variables</em></strong><em>”<br>- Go to the </em><strong><em>Advanced Tab</em></strong><em> and choose </em><strong><em>Environment Variables<br></em></strong><em>- Select </em><strong><em>Path and Edit</em></strong></blockquote><p>You should have the following paths defined to allow you to use Python and Pip (if not, add them):</p><blockquote><em>C:\&lt;your_python_install_path&gt;\Python36<br>C:\&lt;your_python_install_path&gt;\Python36\Scripts</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GyFCtDFMaHeo93mA." /></figure><h3>Installing the Windows Subsystem for Linux (WSL)</h3><p>For this article, we will be running Ubuntu on the Windows Subsystem for Linux to host neo-python.</p><h4>Enable the Windows Subsystem for Linux (WSL)</h4><blockquote><em>- Go to the</em><strong><em>Control Panel<br>- </em></strong><em>Select </em><strong><em>Programs and Features<br>- </em></strong><em>Click the link to </em><strong><em>Turn Windows Features on or off<br>- </em></strong><em>Enable “</em><strong><em>Check Windows Subsystem for Linux</em></strong><em>” and Save (reboot if necessary)</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/870/0*T0sjx8w9fHiUVtGZ." /></figure><h4>Install Ubuntu from the Microsoft Store</h4><p><a href="https://www.microsoft.com/store/productId/9NBLGGH4MSV6">https://www.microsoft.com/store/productId/9NBLGGH4MSV6</a></p><h3>Setting up neo-python source code in Windows</h3><h4>Download Source with Git and Create Debug Copy on Windows</h4><blockquote><em>C:\&gt; git clone </em><a href="https://github.com/CityOfZion/neo-python.git"><em>https://github.com/CityOfZion/neo-python.git</em></a><em> c:/&lt;your_folder_path&gt;/neo-python</em></blockquote><h4>Make a copy of the downloaded code for debugging</h4><blockquote><em>C:\&gt; robocopy c:\&lt;your_folder_path&gt;\neo-python c:\&lt;your_folder_path\neo-python-debug /s</em></blockquote><p>The fun part about the WSL is that these paths we are working with from the Windows Environment are also available and mounted in the Ubuntu environment we just installed.</p><p><strong>To see the code you just checked out in Windows when in Ubuntu (once running), simply go to the following paths:</strong></p><blockquote><em>&gt;/mnt/c/&lt;your_folder_path&gt;/neo-python<br>&gt;/mnt/c/&lt;your_folder_path&gt;/neo-python-debug</em></blockquote><h3>Configuring Ubuntu installed in WSL</h3><p>As I mentioned before, these instructions have been outlined in detail. These instructions will get you running neo-python on Ubuntu, but there are a few minor changes we need to make to make this easier for debugging on Windows.</p><h4>Set up Your Account</h4><p>Launch Ubuntu from Windows and Create Account when Prompted</p><h4>Configure and Install neo-python</h4><p>Configure and install neo-python as outlined in the instructions <a href="https://github.com/CityOfZion/neo-python#getting-started"><strong>here</strong></a>. Be sure not to use the docker image method, and configure / setup the copy of the code you checked out previously in Windows located at:</p><blockquote><em>&gt;/mnt/c/&lt;your_folder_path&gt;/neo-python</em></blockquote><p>Once you have neo-python running on Ubuntu successfully, you can proceed to enable remote debugging.</p><h3>Setting Up to Debug from VSCode on Windows</h3><h4>Open Source Code Folder in VS Code</h4><blockquote><em>- Go to the top </em><strong><em>File</em></strong><em> Menu<br>- Select </em><strong><em>Open Folder </em></strong><em><br>- </em><strong><em>Browse</em></strong><em> to C:\&lt;your_folder_path&gt;\<br>- </em><strong><em>Select</em></strong><em> folder \neo-python</em></blockquote><h4>Select the file that you want to debug from folders that just opened</h4><blockquote><em>ie: C:\&lt;your_folder_path&gt;\neo-python\&lt;file_to_debug&gt;</em></blockquote><h4>Select Debug Version of the File you want to debug</h4><blockquote><em>- Go to the top </em><strong><em>File</em></strong><em> Menu<br>- Select </em><strong><em>Open File </em></strong><em><br>- </em><strong><em>Browse</em></strong><em> to C:\&lt;your_folder_path&gt;\neo-python-debug\<br>- </em><strong><em>Select</em></strong><em> &lt;file_to_debug&gt;</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/555/0*FstvNiiUjrcC6tqK." /></figure><h4>Add Debug Server Code to Both Files</h4><p>Both pieces of code have to match for the debugger to work properly. The “posix” OS identifier lets us know to only start the debugging server on Ubuntu.</p><p>At the top of both source files, include the following:</p><blockquote><em>import os<br>if </em><a href="http://os.name/"><em>os.name</em></a><em> == “posix”:<br> import ptvsd</em></blockquote><blockquote><em>ptvsd.enable_attach(“uniquecodeforsecurity”, address = (‘127.0.0.1’, 3000))<br>print(“Waiting for debugger to attach…”)<br>ptvsd.wait_for_attach()<br>ptvsd.break_into_debugger()</em></blockquote><p>This lets the executing code know that if we’re running on Ubuntu, to start a debugging server/listener on port 3000 (since we are on WSL it’s all localhost so we don’t have to mess with firewalls and ports), and wait for a debug request to come in.</p><h4>Add the Python Remote Debug Configuration to VS Code</h4><blockquote><em>- Open the </em><strong><em>Debug Tab<br></em></strong><em>-</em><strong><em> </em></strong><em>Click the </em><strong><em>Settings Wheel</em></strong><em><br>- Add the Remote Debug Configuration to </em><strong><em>launch.json</em></strong><em> in the Configurations array</em></blockquote><blockquote><em>{“name”: “Attach (Remote Debug)”,<br> “type”: “python”,<br> “request”: “attach”,<br> “localRoot”: “${workspaceFolder}”,<br> “remoteRoot”: “/mnt/c/&lt;your_folder_path&gt;/neo-python-debug”,<br> “port”: 3000,<br> “secret”: “uniquecodeforsecurity”,<br> “host”: “127.0.0.1”},</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PZ7Xxjr-zVmWRG6L." /></figure><h3>Start Debugging</h3><p>Finally! There were a lot of steps here, but now we can finally run our code in a full Ubuntu environment giving us full dependency support for neo-python. Now the rest is simple, we just need to fire up the code!</p><h4>Start the Program on Ubuntu WSL</h4><blockquote><em>&gt; python3 ./mnt/c/&lt;your_folder_path&gt;/neo-python-debug/&lt;file_to_debug&gt;</em></blockquote><h4>Go to VS Code and Start Debugging on Windows</h4><blockquote><em>- </em><strong><em>Focus</em></strong><em> the non-debug source file (ie: neo-python/&lt;file_to_debug&gt;)<br>- Select the </em><strong><em>debug tab</em></strong><em><br>- Select the profile we created earlier “</em><strong><em>Attach (Remote Debug)</em></strong><em>” from dropdown<br>- </em><strong><em>Start</em></strong><em> debugging</em></blockquote><p>And that’s it! You should be up and running your neo-python node in Ubuntu while debugging in Visual Studio Code on Windows.</p><h3>Need additional help?</h3><p>The technique we used here to enable a remote debugging session across Windows and WSL can also be used with remote servers. I guarantee once you start working with remote debugging, you will find it a handy tool for those times where “it works on your machine”, but something entirely different is happening on a test or production environment.</p><p><strong>City of Zion</strong><br>If you need further assistance in getting started, feel free to join the <a href="https://discord.gg/zRq6Jba">City of Zion NEO Smart Economy Discord Server</a>. The community will help you get set up and debugging your smart contracts in no time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=284fb518b213" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>