Category Archives: Uncategorized

Blockchain: Links And Resources (471)

Previous Post
Next Post

Designing Smart Contracts With Free Will
https://slideslive.com/38920016/designing-smart-contracts-with-free-will

Hyperledger Caliper
https://hyperledger.github.io/caliper/
Blockchain performance benchmarking for Hyperledger Besu, Burrow, Fabric, Iroha & Sawtooth, and non Hyperledger Ethereum and FISCO BCOS networks

Coin Metric’s State of the Network
https://coinmetrics.substack.com

Time-Lock Encryption
https://www.gwern.net/Self-decrypting-files

Vyper Preliminary Security Review
https://diligence.consensys.net/blog/2019/10/vyper-preliminary-security-review/

Crytic Compile
https://github.com/crytic/crytic-compile
Library to help smart contract compilation

Maker and DAI Diagram
https://twitter.com/inquisitivekath/status/1188819364532801537

People’s Bank of China may be the first central bank in the world to issue sovereign digital currency
https://twitter.com/cnLedger/status/1188833882298183680

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
https://twitter.com/ajlopez

Blockchain: Links And Resources (405)

Previous Post
Next Post

Deloitte: China Looking to Use Blockchain as a ‘Strategic Weapon’
https://cointelegraph.com/news/deloitte-china-looking-to-use-blockchain-as-a-strategic-weapon

Libra’s Unresolved Puzzles
https://www.cato.org/blog/libras-unresolved-puzzles

Komodo And The Early Pioneers Of Atomic Swaps
https://komodoplatform.com/komodo-and-the-early-pioneers-of-atomic-swaps/

20 Blockchain Projects with the Most Dev Activity on Github—June, 2019
https://media.consensys.net/20-blockchain-projects-with-the-most-dev-activity-on-github-june-2019-f6f9aeea74ef

Tether is steadily migrating from Bitcoin to Ethereum
https://twitter.com/sassal0x/status/1146237778075631616?s=21

Echo: Open Finance. Smarter Contracts. Built for Bitcoin.
https://echo.org/

Polkadot Builders Starter’s Guide
https://wiki.polkadot.network/en/latest/polkadot/build/build-with-polkadot/

‘Bitcoin Time’ Moving Faster Than ‘Internet Time,’ Says Hashcash Inventor Adam Back
https://cointelegraph.com/news/bitcoin-time-moving-faster-than-internet-time-says-hashcash-inventor-adam-back

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
https://twitter.com/ajlopez

New Month’s Resolutions: February 2019

It’s time to write down my resolutions for the new month. But first, a review of the past month’s ones:

– Continue WorldModel [pending]
– Continue Erlie [complete] see repo
– Continue Walang [complete] see repo
– Continue robotsim [complete] see repo
– Continue Elmie [pending]
– Continue PokerLib [pending]
– Continue SimpleNeuron [pending]
– Continue BlockchainJ [complete] see repo
– Continue Dexert [pending]
– Continue EthBridge [complete] see repo
– Continue SolidityCompiler [pending]
– Continue Idener [complete] see repo
– Record a talk about Smart Contracts programming [pending]
– Write experimental code for RskJ [complete] see repo

Additionally, I was working:

– Start simpledfs [complete] see repo
– Continue HuskyJS [complete] see repo
– Start EthPets [complete] see repo
– Start EthCollectibles [complete] see repo
– Improve ChineseP [complete] see repo
– Publishing PFuns, first version [complete] see repo
– Improving RskAPI [complete] see repo
– Improving SimpleJsonRpc [complete] see repo
– Improving SimpleUnit [complete] see repo

My new month’s resolutions:

– Continue simpledfs
– Continue Erlie
– Continue Walang
– Continue robotsim
– Continue Elmie
– Continue SimpleNeuron
– Continue BlockchainJ
– Continue Dexert
– Continue EthBridge
– Continue Idener
– Record a talk about Smart Contracts programming
– Write experimental code for RskJ

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
http://twitter.com/ajlopez

 

Blockchain: Links And Resources (197)

Previous Post
Next Post

Announcing the launch of ZeppelinOS
https://blog.zeppelinos.org/announcing-the-launch-of-zeppelinos/

A Bank In Argentina Is Now Using Bitcoin for Cross-Border Payments
https://www.coindesk.com/bank-argentina-just-added-bitcoin-cross-border-payments/

The Ethereum-blockchain size has exceeded 1TB, and yes, it’s an issue
https://medium.com/@StopAndDecrypt/the-ethereum-blockchain-size-has-exceeded-1tb-and-yes-its-an-issue-2b650b5f4f62

Argentine Bank Lets Customers Send Bitcoin Across The Border
https://www.ethnews.com/argentine-bank-lets-customers-send-bitcoin-across-the-border

Bitcoin Gold Hit by Double Spend Attack, Exchanges Lose Millions
https://www.ccn.com/bitcoin-gold-hit-by-double-spend-attack-exchanges-lose-millions/amp/

Walmart Looks to Blockchain for Retail Product Resales
https://www.coindesk.com/walmart-patent-application-seeks-to-track-resold-goods-on-a-blockchain

China’s Biggest Mobile Game Platform Announces Plans to Integrate with Loom DAppChains
https://medium.com/loom-network/chinas-biggest-mobile-game-platform-announces-plans-to-integrate-with-loom-dappchains-16ce5c14d44e

ZeppelinOS Partners With ChainLink, the Market Leader in Trusted Oracles
https://blog.zeppelinos.org/chainlink-partnership/

Stay tuned!

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
http://twitter.com/ajlopez

New Month’s Resolutions: April 2018

A new month in progress. Time to review the previous month’s resolutions:

– Continue SimpleGo [pending]
– Continue Exeth [complete] see repo
– Continue HuskyJS [complete] see repo
– Continue RskApi [complete] see repo
– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue SimpleEvm [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue AprendiendoSolidity [pending]
– Continue SharpGo [pending]
– Resume Machine Learning Mentorship [pending]
– Continue Solidity Mentorship [partial] see repo

Additionally, I worked on

– Add example to SimpleDT [complete] see repo
– Create evmasm [complete] see repo
– Improving RskUtils [complete] see repo
– Add https support to SimpleJsonRpc [complete] see repo
– Improve Bitcoin sample SimpleGA [complete] see repo
– Continue RSharp [complete] see repo [complete] see repo
– Continue CrysSharp [complete] see repo
– Improve LllJs [complete] see repo
– Improve Emv2Code [complete] see repo
– Improve SolidityCompiler [complete] see repo

My new month’s resolutions:

– Continue SimpleGo
– Continue Exeth
– Continue HuskyJS [complete] see repo
– Continue RskApi
– Continue BlockchainJ
– Continue BlockchainSharp
– Continue SimpleEvm
– Continue TensorSharp
– Continue AprendiendoSolidity
– Continue SharpGo
– Continue RSharp

Angel “Java” Lopez
http://www.ajlopez.com
https://github.com/ajlopez
https://twitter.com/ajlopez

 

Scaling Ethereum/RSK: Multi Blockchains (1)

Next Post

I already wrote some proposals in my other post series:

Connecting Blockchains
Multi-Blockchains in Ethereum/RSK
Offchain Transactions in Ethereum/RSK

commenting on using two or more blockchains (homegeneous or heterogeneous), and offchain transactions. They are alternative ways to explore solutions to scalability, with a fresh start and pursuing the simplest path in each idea.

After reviewing the multi-blockchain, now I think a have a simpler path. First, this proposal is about having many HOMOGENEOUS blockchains, Ethereum/RSK-like ones. One is the mainchain, and we could have n additional blockchains:

The main blockchain has the initial ether amount of ether to use. For sake of clarity, let’s start with a main blockchain, the blockchain zero, has an initial stock of 100M ethers (in case of RSK network, it could be the 21M smart bitcoins backed by the 21M bitcoins of the BTC mainnet),

All accounts are the same in all networks: same private, public keys, addresses. So, if you have control of a control in blockchain zero, you can use the same account IN OTHER blockchain.

But the secondary blockchains starts with 0 balance in each account.

The second idea is to have inter-chain transactions, to transfer from one account in source blockchain, to the SAME account in target blockchain:;

An special bridge account is used. There is a bridge account in mainchain FOR EACH secondary chain. So, if you transfer value in blockchain 0, to bridge account corresponding to secondary blockchain 3, THEN a similar transaction will appear in this secondary blockchain, transferring the same amout from the dedicated BRIDGE account. To allow such transfer, each bridge account in SECONDARY blockchain starts with 100M of initial balance,

If there are 10 secondary blockchain, then there are 10 BRIDGE ACCOUNTS in the main blockchain (with initial 0 balance), and ONE BRIDGE ACCOUNT in each secondary blockchain (with 100M inital balance),

You also can send a transaction to a secondary blockchain, transferring value back to the mainchain:

The motivation is to have scalabilty: if the mainchain is overloaded, we can use a secondary blockchain. Also, the different blockchain could have different gas price, and maybe other difference in contract execution cost.

We could use a free graph of blockchains. But limiting the proposal to a hierarchical schema with only one level simplifies the discussion. The transactions between secondary blockchains are not allowed: only main to secondary one are supported. And no generation of new Ether is allowed in the secondary blockchains. These restrictions exist to have a better control of the total amout of value.

I could imagine a secondary blockchain by world region, country, even by vertical market. Or competing blockchains, in gas price and contract execution cost. The client software (that is, a dapp, a mobile application) could simplify the user experience, doing some of these transfer inter-blockchain in automatic.

But, how to reflect one transaction to bridge in one blockchain, to other transaction in the target blockchain? My next post will descibe a simple solution, to be discussed and reviewed. But I think it is a good starting point, to avoid the complications of some atomic swap and alike implementions.

Stay tuned!

Stay tuned!

Angel “Java” Lopez
https://github.com/ajlopez
http://twitter.com/ajlopez
http://www.ajlopez.com

 

 

 

Building A Blockchain (16)

Previous Post

In recent months I have been busy working on the RSK project. It’s time to write about my personal blockchain projects:

https://github.com/ajlopez/BlockchainSharp
https://github.com/ajlopez/SimpleBlockchain
https://github.com/ajlopez/RskSharp

Currently, the most active one is the C# project. I added one project:

https://github.com/ajlopez/BlockchainJ

in Java. The experience I gained written all this code (using test-driven design, as usual) gaves me a clear idea of what is involved when building a blockchain. Writing my own implementations gave me better understanding of the parts related to the creation of a blockchain. And now the RSK project (Java core implementation) is public, I’m free to relate this work with an existing full implementation.

The key points to be written are:

  • Entities
  • States
  • Virtual machine to run smart contracts
  • Encoders
  • Consensus
  • Validation logic
  • Inter-node communication
  • Expose node state to external applications

The base entities are:

  • Block
  • Transaction
  • Account

The states to be kept are:

  • Blockchain
  • Account state
  • Contract state

My projects are oriented to have smart contracts, a la Ethereum. One reason to have a virtual machine is be agnostic of host programming language. I think that having a way of run smart contract that is independent of the programming language used in each project, is an interesting feature. So, I should define:

  • Virtual machine opcodes
  • Transient (memory) storage
  • Persistent storage

I need encoders for blocks, transactions and account states. The encoded entities are used in the network communication, local storage, and in the hash calculation. For example, when I have to transmit a block I encoded it. And if I want to send the block to another node, I should encoded the block before transmission. And the encoded data is the basis for hash calculation.

The inter-node communication includes:

  • Message definitions
  • Message and handshake protocol
  • Peer-discovery protocol

Validation logic refers to:

  • Validation of blocks
  • Sign of transaction and its validation

Consensus logic has:

  • Selection of the next block
  • Run of the transactions, updating the accounts/contracts states

The exposure of a node state is implemented in Bitcoin and Ethereum using JSON RPC (Remote procudure call), usually exposed via http. In this way, the node can be accessed by external technologies implemented in different technologies (JavaScript blockchain ecosystems are the more popular).

Followin Ethereum ideas, one entity I implemented many times is a trie. I think my implementations are very simple and effective. I hope to be able to write in the next posts about those implementations.

Stay tuned!

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
http://twitter.com/ajlopez