ArcBlock's Technical Learning Series presents Tendermint: Consensus made easy.
Tendermint is an opensource software aimed to securely and consistently replicating an application on many machines. It acts as a consensus engine and provides a generic application interface called ABCI which makes it pretty easy to integrate itself into other blockchain technology, like Ethereum.
This talk will give a high-level introduction to Tendermint, its architecture, how consensus works and how application data are replicated. We will also give some scenario about how Tendermint could be used to solve various problems.
https://www.arcblock.io
Ethermint 2.0: An Ethereum Scaling Solution by CosmosTendermint Inc
Cosmos & Tendermint announces the Ethereum Virtual Machine (EVM) module for the Cosmos SDK. The Cosmos SDK easily allows developers to build their own interoperable blockchain. The EVM module lets Ethereum developers start experimenting a Proof of Stake today.
HD Slides: https://github.com/cosmos/cosmos-academy/raw/master/presentations/2018-10-31-devcon4/ethermint-2.0.pdf
Website: https://cosmos.network
Apart from Proof of Work there are many other Consensus Mechanisms being discussed. What are they and what are their pros and cons. (Proof of Stake, Proof of Elapsed Time, Proof of Authority, Proof of Burn, Proof of Authority, Byzantine Fault Tolerance, Proof of Importance)
Cosmos SDK Workshop: How to Build a Blockchain from ScratchTendermint Inc
Follow our simple nameservice application tutorial to build your own decentralized application running on its own blockchain with the Cosmos SDK.
Download the tutorial: github.com/cosmos/sdk-application-tutorial
Ethermint 2.0: An Ethereum Scaling Solution by CosmosTendermint Inc
Cosmos & Tendermint announces the Ethereum Virtual Machine (EVM) module for the Cosmos SDK. The Cosmos SDK easily allows developers to build their own interoperable blockchain. The EVM module lets Ethereum developers start experimenting a Proof of Stake today.
HD Slides: https://github.com/cosmos/cosmos-academy/raw/master/presentations/2018-10-31-devcon4/ethermint-2.0.pdf
Website: https://cosmos.network
Apart from Proof of Work there are many other Consensus Mechanisms being discussed. What are they and what are their pros and cons. (Proof of Stake, Proof of Elapsed Time, Proof of Authority, Proof of Burn, Proof of Authority, Byzantine Fault Tolerance, Proof of Importance)
Cosmos SDK Workshop: How to Build a Blockchain from ScratchTendermint Inc
Follow our simple nameservice application tutorial to build your own decentralized application running on its own blockchain with the Cosmos SDK.
Download the tutorial: github.com/cosmos/sdk-application-tutorial
Basics you need to know about Solidity and how it works. Learn the simple way of building a smart contract in Solidity. Tools that can be used with Solidity.
Blockchain Training | Blockchain Tutorial for Beginners | Blockchain Technolo...Edureka!
This Edureka Blockchain training will give you a fundamental understanding regrading Blockchain and Bitcoin.
This session will help you learn following topics:
1. Current Existing Monetary System
2. How can Blockchain and Bitcoin help?
3. What is Blockchain?
4. Blockchain concepts
5. Bitcoin Transaction
6. Blockchain features
7. Blockchain Use Case
8. Demo: Bitcoin Transaction
NATS is a high performance messaging server and also one of the latest additions to the CNCF. In this talk, we will make a deep dive to the internals of the project covering its design, protocol, clustering implementation, security and authorization features that make it an attractive solution for microservices and low latency applications.
Consensus Algorithms - Nakov at CryptoBlockCon - Las Vegas (2018)Svetlin Nakov
Consensus Algorithms
Dr. Svetlin Nakov at CryptoBlockCon - Las Vegas (11 Dec 2018)
In this talk the speaker Svetlin Nakov explains very briefly the concepts of decentralized consensus and blockchain consensus algorithms, along with examples from popular blockchain networks and DLT ledgers:
The concept of Byzantine Fault Tolerance (BFT)
The role of consensus algorithms in decentralized systems and blockchains
Proof-of-work consensus (PoW), mining, pools, hash power, ASIC mining, etc.
Proof-of-stake (PoS) and its variants: DPoS (delegated PoS), RPoS (randomized PoS), LPoS (leased PoS), PoI (proof of importance)
Practical Byzantine Fault Tolerance (PBFT) and FBA (federated byzantine agreement)
Proof-of-Authority (POA)
Non-blockchain consensus, asynchronous byzantine fault tolerance (aBFT) and Hashgraph
Introduction to Solidity and Smart Contract Development (9).pptxGene Leybzon
Blockchain is a revolutionary technology that is changing the way we handle digital transactions. It is a technology that can be applied in many different fields, from logistics and supply chain management to real estate and voting systems.
In order to help our clients to plan and execute digital transformation, we need to understand foundational elements, including smart contracts and languages that are popular in developing smart contracts.
In this presentation, we share an overview of what a smart contract is and how it functions, look into the real-world examples of smart contracts, and tools that are used to develop smart contracts. We look into Solidity, a powerful programming language that enables developers to create complex and sophisticated smart contract applications on Ethereum-compatible blockchains.
There is no expectation of prior knowledge of blockchain technology or smart contracts development and we are expecting to have a lively and engaging session.
What is A Smart Contract? | Smart Contracts Tutorial | Smart Contracts in Blo...Simplilearn
This presentation on smart contract tutorial will help you understand what is a smart contract, why we need a smart contract, solidity for a smart contract, Blockchain implementation of the smart contract, voting process, hospitals and at the end you will see a use case implementation on crowdfunding smart contract. Smart contracts are self-executing contracts which contain the terms and conditions of an agreement between the peers. A smart contract is very similar to a vending machine. It eliminates the need for intermediate and escrow services. The terms and conditions of an agreement are written in code. These agreements facilitate the exchange of money, shares, property etc. All of this process is executed in Blockchain's decentralized platform. So, let us get started and understand what is a smart contract.
Below topics are explained in this smart contract presentation:
1. Why smart contract?
2. What is a smart contract?
3. Solidity for smart contract
4. Blockchain implementation of a smart contract
5. Voting process
6. Hospitals
7. Use case - Crowd funding smart contract
Simplilearn’s Blockchain Certification Training has been designed for developers who want to decipher the global craze surrounding Blockchain, Bitcoin and cryptocurrencies. You’ll learn the core structure and technical mechanisms of Bitcoin, Ethereum, Hyperledger and Multichain Blockchain platforms, use the latest tools to build Blockchain applications, set up your own private Blockchain, deploy smart contracts on Ethereum and gain practical experience with real-world projects.
Why learn Blockchain?
Blockchain technology is the brainchild of Satoshi Nakamoto, which enables digital information to be distributed. A network of computing nodes makes up the Blockchain. Durability, robustness, success rate, transparency, incorruptibility are some of the enticing characteristics of Blockchain. By design, Blockchain is a decentralized technology which is used by a global network of the computer to manage Bitcoin transactions easily. Many new business applications will result in the usage of Blockchain such as Crowdfunding, smart contracts, supply chain auditing, etc.
The Blockchain Certification Training Course is recommended for:
1. Developers
2. Technologists interested in learning Ethereum, Hyperledger and Blockchain
3. Technology architects wanting to expand their skills to Blockchain technology
4. Professionals curious to learn how Blockchain technology can change the way we do business
5. Entrepreneurs with technology background interested in realizing their business ideas on the Blockchain
Learn more at: https://www.simplilearn.com/
This presentation shows the evolution of blockchain implementations from simple financial transactions to complex computer programs (i.e. Smart Contracts)
Ethereum at its simplest, is an open software platform based on blockchain technology
Ethereum allows developers to build and deploy decentralized applications.
Distributed systems and blockchain technologyAlket Cecaj
An introduction to blockchain technology starting from the distributed systems and the CAP theorem. Consensus mechanisms explained on the bitcoin blockchain.
Scaling Ethereum using Zero-Knowledge ProofsHyojun Kim
Introduces the way how ZKPs can be used to scale Ethereum blockchains.
— What is Zero-Knowledge Proof?
— zk-SNARKs and Succinctness
— Layer-2 Scalability using zk-SNARKs
— Using SNARK on Ethereum
— Going Future: zk-STARKs
We're hiring! abr.ge/ueaerh
Networking and Go: An Engineer's Journey (Strangeloop 2019)Sneha Inguva
My foray into Go began a few years ago when I started working at DigitalOcean. While building an abstraction layer on top of Kubernetes and familiarizing myself with the language, I began to love it. Syntactically simple, with amazing concurrency primitives and a wonderful community, Go was an excellent choice for a cloud-hosting company with a variety of low-level, server-side microservices.
In the last year, however, I've joined the software-defined networking team and learned of another application of Go; networking services. The networking team at DigitalOcean uses Go for a variety of purposes - from DHCP servers to IP address management services..to even wrappers around virtual switch tooling. Intrigued, I decided to also investigate how Go could be used to build other services such as port scanners and load-balancers.
This session will highlight my networking journey via Go. I will discuss useful packages, key learnings, and even struggles faced while building a variety networking services within and outside of DigitalOcean. I will discuss both relevant packages within the standard library and open source packages used to implement key network protocols. As a result, listeners will gain an understanding of how to specifically leverage Go for their own networking needs.
Basics you need to know about Solidity and how it works. Learn the simple way of building a smart contract in Solidity. Tools that can be used with Solidity.
Blockchain Training | Blockchain Tutorial for Beginners | Blockchain Technolo...Edureka!
This Edureka Blockchain training will give you a fundamental understanding regrading Blockchain and Bitcoin.
This session will help you learn following topics:
1. Current Existing Monetary System
2. How can Blockchain and Bitcoin help?
3. What is Blockchain?
4. Blockchain concepts
5. Bitcoin Transaction
6. Blockchain features
7. Blockchain Use Case
8. Demo: Bitcoin Transaction
NATS is a high performance messaging server and also one of the latest additions to the CNCF. In this talk, we will make a deep dive to the internals of the project covering its design, protocol, clustering implementation, security and authorization features that make it an attractive solution for microservices and low latency applications.
Consensus Algorithms - Nakov at CryptoBlockCon - Las Vegas (2018)Svetlin Nakov
Consensus Algorithms
Dr. Svetlin Nakov at CryptoBlockCon - Las Vegas (11 Dec 2018)
In this talk the speaker Svetlin Nakov explains very briefly the concepts of decentralized consensus and blockchain consensus algorithms, along with examples from popular blockchain networks and DLT ledgers:
The concept of Byzantine Fault Tolerance (BFT)
The role of consensus algorithms in decentralized systems and blockchains
Proof-of-work consensus (PoW), mining, pools, hash power, ASIC mining, etc.
Proof-of-stake (PoS) and its variants: DPoS (delegated PoS), RPoS (randomized PoS), LPoS (leased PoS), PoI (proof of importance)
Practical Byzantine Fault Tolerance (PBFT) and FBA (federated byzantine agreement)
Proof-of-Authority (POA)
Non-blockchain consensus, asynchronous byzantine fault tolerance (aBFT) and Hashgraph
Introduction to Solidity and Smart Contract Development (9).pptxGene Leybzon
Blockchain is a revolutionary technology that is changing the way we handle digital transactions. It is a technology that can be applied in many different fields, from logistics and supply chain management to real estate and voting systems.
In order to help our clients to plan and execute digital transformation, we need to understand foundational elements, including smart contracts and languages that are popular in developing smart contracts.
In this presentation, we share an overview of what a smart contract is and how it functions, look into the real-world examples of smart contracts, and tools that are used to develop smart contracts. We look into Solidity, a powerful programming language that enables developers to create complex and sophisticated smart contract applications on Ethereum-compatible blockchains.
There is no expectation of prior knowledge of blockchain technology or smart contracts development and we are expecting to have a lively and engaging session.
What is A Smart Contract? | Smart Contracts Tutorial | Smart Contracts in Blo...Simplilearn
This presentation on smart contract tutorial will help you understand what is a smart contract, why we need a smart contract, solidity for a smart contract, Blockchain implementation of the smart contract, voting process, hospitals and at the end you will see a use case implementation on crowdfunding smart contract. Smart contracts are self-executing contracts which contain the terms and conditions of an agreement between the peers. A smart contract is very similar to a vending machine. It eliminates the need for intermediate and escrow services. The terms and conditions of an agreement are written in code. These agreements facilitate the exchange of money, shares, property etc. All of this process is executed in Blockchain's decentralized platform. So, let us get started and understand what is a smart contract.
Below topics are explained in this smart contract presentation:
1. Why smart contract?
2. What is a smart contract?
3. Solidity for smart contract
4. Blockchain implementation of a smart contract
5. Voting process
6. Hospitals
7. Use case - Crowd funding smart contract
Simplilearn’s Blockchain Certification Training has been designed for developers who want to decipher the global craze surrounding Blockchain, Bitcoin and cryptocurrencies. You’ll learn the core structure and technical mechanisms of Bitcoin, Ethereum, Hyperledger and Multichain Blockchain platforms, use the latest tools to build Blockchain applications, set up your own private Blockchain, deploy smart contracts on Ethereum and gain practical experience with real-world projects.
Why learn Blockchain?
Blockchain technology is the brainchild of Satoshi Nakamoto, which enables digital information to be distributed. A network of computing nodes makes up the Blockchain. Durability, robustness, success rate, transparency, incorruptibility are some of the enticing characteristics of Blockchain. By design, Blockchain is a decentralized technology which is used by a global network of the computer to manage Bitcoin transactions easily. Many new business applications will result in the usage of Blockchain such as Crowdfunding, smart contracts, supply chain auditing, etc.
The Blockchain Certification Training Course is recommended for:
1. Developers
2. Technologists interested in learning Ethereum, Hyperledger and Blockchain
3. Technology architects wanting to expand their skills to Blockchain technology
4. Professionals curious to learn how Blockchain technology can change the way we do business
5. Entrepreneurs with technology background interested in realizing their business ideas on the Blockchain
Learn more at: https://www.simplilearn.com/
This presentation shows the evolution of blockchain implementations from simple financial transactions to complex computer programs (i.e. Smart Contracts)
Ethereum at its simplest, is an open software platform based on blockchain technology
Ethereum allows developers to build and deploy decentralized applications.
Distributed systems and blockchain technologyAlket Cecaj
An introduction to blockchain technology starting from the distributed systems and the CAP theorem. Consensus mechanisms explained on the bitcoin blockchain.
Scaling Ethereum using Zero-Knowledge ProofsHyojun Kim
Introduces the way how ZKPs can be used to scale Ethereum blockchains.
— What is Zero-Knowledge Proof?
— zk-SNARKs and Succinctness
— Layer-2 Scalability using zk-SNARKs
— Using SNARK on Ethereum
— Going Future: zk-STARKs
We're hiring! abr.ge/ueaerh
Networking and Go: An Engineer's Journey (Strangeloop 2019)Sneha Inguva
My foray into Go began a few years ago when I started working at DigitalOcean. While building an abstraction layer on top of Kubernetes and familiarizing myself with the language, I began to love it. Syntactically simple, with amazing concurrency primitives and a wonderful community, Go was an excellent choice for a cloud-hosting company with a variety of low-level, server-side microservices.
In the last year, however, I've joined the software-defined networking team and learned of another application of Go; networking services. The networking team at DigitalOcean uses Go for a variety of purposes - from DHCP servers to IP address management services..to even wrappers around virtual switch tooling. Intrigued, I decided to also investigate how Go could be used to build other services such as port scanners and load-balancers.
This session will highlight my networking journey via Go. I will discuss useful packages, key learnings, and even struggles faced while building a variety networking services within and outside of DigitalOcean. I will discuss both relevant packages within the standard library and open source packages used to implement key network protocols. As a result, listeners will gain an understanding of how to specifically leverage Go for their own networking needs.
In this session we will look at the options for replicating content between Alfresco repositories. Starting with a re-cap of the existing functionality of version 3.3, we will then introduce the new replication features of Alfresco 3.4 including some more advanced scenarios. If you have been paying attention to recent SVN commits then you can't have failed to notice that Alfresco folders can be invaded by aliens. Find out what that means in this session!
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Mingliang Liu
Parallel application benchmarks are indispensable for evaluating/optimizing HPC software and hardware. However, it is very challenging and costly to obtain high-fidelity benchmarks reflecting the scale and complexity of state-of-the-art parallel applications. Hand-extracted synthetic benchmarks are time- and labor-intensive to create. Real applications themselves, while offering most accurate performance evaluation, are expensive to compile, port, reconfigure, and often plainly inaccessible due to security or ownership concerns. This work contributes APPrime, a novel tool for trace-based automatic parallel benchmark generation. Taking as input standard communication-I/O traces of an application's execution, it couples accurate automatic phase identification with statistical regeneration of event parameters to create compact, portable, and to some degree reconfigurable parallel application benchmarks. Experiments with four NAS Parallel Benchmarks (NPB) and three real scientific simulation codes confirm the fidelity of APPrime benchmarks. They retain the original applications' performance characteristics, in particular their relative performance across platforms. Also, the result benchmarks, already released online, are much more compact and easy-to-port compared to the original applications.
http://dl.acm.org/citation.cfm?id=2745876
Programming smart contracts in solidityEmanuel Mota
Ethereum Overview and what are Smart Contracts and what are their limitations. A Solidity programming language Crash Course. How to create an ERC20 token. What is an ICO on Ethereum.
Communication in Python and the C10k problemJose Galarza
Talk at the Codemotion Spain 2014 about how to handle communication (polling, long polling, websockets, SSE), concurrency (processes, threads, coroutines, green threads) and the C10K problem in python
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...Alexandre Moneger
This presentation shows that code coverage guided fuzzing is possible in the context of network daemon fuzzing.
Some fuzzers are blackbox while others are protocol aware. Even ones which are made protocol aware, fuzzer writers typically model the protocol specification and implement packet awareness logic in the fuzzer. Unfortunately, just because the fuzzer is protocol aware, it does not guarantee that sufficient code paths have been reached.
The presentation deals with specific scenarios where the target protocol is completely unknown (proprietary) and no source code or protocol specs are accessible. The tool developed builds a feedback loop between the client and the server components using the concept of "gate functions". A gate function triggers monitoring. The pintool component tracks the binary code coverage for all the functions untill it reaches an exit gate. By instrumenting such gated functions, the tool is able to measure code coverage during packet processing.
CocoaConf: The Language of Mobile Software is APIsTim Burks
We’re all excited about using the same language to write our mobile apps and cloud services, but as we do, we’ll still need to work with a few things that aren’t written with Swift. Fortunately, there are some great patterns that we can use for doing that. In this session we’ll talk about two technologies that you can use to make your app speak with APIs written in any language: OpenAPI and Protocol Buffers, and then we’ll see how to use them from clients and servers that are written in Swift.
Presented Friday November 4, 2016 in San Jose.
A introduction to core concepts and ideas behind blockchain helping everyone understanding what it is, how to use it and how it can deliver benefits in a range of use cases.
https://www.arcblock.io
Learn how to use Forge Framework to easily deploy your own blockchains in the real world. This introduction includes instructions on how to build a deployment script, reference architecture and looks at some of the most common issues app developers run into when building apps.
https://www.arcblock.io
Part 4 of ArcBlock's Designing DApps learning series focuses on the concept of Programmable Tokens and looks at why tokens are required to have a successful DApp.
https://www.arcblock.io/en/learning
Build a Decentralized, public verifiable Database with ex_abci and TendermintArcBlock
ArcBlock's VP of Engineering, Tyr Chen, led a session at CodeBEAM SF and presented a talk called Build Decentralized, Pubically Verifiable DB with ex_abci and Tendermint. The session included an in-depth look at why decentralization and having services that are publically verifiable matter. Tyr Chen also looked at different use cases that ArcBlock is exploring including ownership of digital assets and how those can be verified publicly.
https://www.arcblock.io
The talk also gave developers a preview of ArcBlock's Forge Framework. A new chain building service that includes everything needed to create, build and deploy a user created blockchain.
https://www.arcblock.io/en/forge-framework
ArcBlock Presents 5 Winning Factors to Building a Successful DAppArcBlock
ArcBlock's Technical Learning Series presents part 2 of our Designing DApps series. This session is focused on the 5 winning factors for designing, building and launching a successful DApp.
https://www.arcblock.io
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity VerificationArcBlock
ArcBlock Technical Learning Series Presents an introduction to QRCodes.
We scan QRCode for payment, links and basically everything. How do QRcodes work? Are QRcodes secure? Why can I put a logo in the middle of QRCode and it still works? In this talk, we will show you how the QRCode is being drawn. Also, we will talk about Reed-Solomon error correction inside QRCode that makes it fault tolerant.
二维码源于日本,如今世界各国都在使用。一张简单的二维码蕴藏了不简单的信息。二维码究竟是如何画出来的?二维码安全吗?为何在二维码中加个图标还能被扫出来?卫星通讯中用到的Reed-Solomon纠错码如何被用在了二维码中?本次讲座为您揭晓二维码的生成原理,听完保证可以get手绘二维码技能。
https://www.arcblock.io
ArcBlock Technical Learning Series presents Designing Decentralized Applications (DApps) Part 1. This is the first of a 5-part series to help developers, Venture Capitalists, Fund Analysts and product managers prepare, plan and design real-world decentralized applications.
https://www.arcblock.io
The goal of this series is to create a new product mindset focused on decentralization. This includes examining the role of decentralization in the past, problems related to the centralized internet including user account and data controlled by a few companies, security and privacy and more.
We will also look at some of the first decentralized applications like Napster, Popcorn Time, Mastadon, ZeroNet, and OpenBazaar.
Next, we will review the role of identity and how today's companies are pushing people back towards decentralized applications to get control of their own identities. This includes new digital wallets and self-sovereign identity and how future applications will leverage these new decentralized identity models.
https://hack.arcblock.io/learning
ArcBlock's Technical Learning Series presents: Cryptography for everyone.
Cryptography is a foundational piece in BlockChain technology. The reason BlockChain is secured is based on the promise of the underlying cryptographic primitives. In this talk, we will give an introduction to cryptography, from symmetric encryption to public key encryption. We will see how it makes blockchain technology possible. Also, we will talk about the crypto primitives behind cryptocurrency wallet. So you will know how important is your private key.
区块链是集多种高大上技术为大成的应用,密码学占其中最重要的一环。事实上,平日我们在互联网上做的任何事情都有密码学的身影在里面。区块链所用到的的sha256, secp256k1, ed25519都是些什么鬼?本次讲座将从一个最简单的问题开始——如何隐藏不能说的秘密——一直讲到现代密码学在区块链以及钱包中的应用,为您揭开密码学娇羞的面纱。 听完您会明白,为什么我不该在云上备份钱包里的私钥。
https://www.arcblock.io
ArcBlock's Technical Learning Series Presents: Intro to HTTP/2.
You may not know that your browser supports HTTP/2 long times ago. What exactly is HTTP/2? What's the difference between HTTP/2 and HTTP? Why do we even need HTTP2/? What can we do with HTTP/2's new feature? This talk is all about HTTP/2, also we will demonstrate how to write a simple HTTP/2 client in 33 lines of code.
HTTP/2早在2015年就被互联网工程任务小组制定为标准,我们用的浏览器其实早就悄悄支持HTTP/2了。HTTP/2到底比HTTP/1.1好在哪里?关于HTTP/2我需要知道什么?听说HTTP/3快要出了现在才讲HTTP/2是不是有点晚?这篇讲座将解答您的这些问题。另外我们也会现场演示如何用33行代码写一个最简单的HTTP/2客户端。"
ArcBlock Technical Learning Series Presents IPFS.
If there's a missing piece in current blockchain stack, that'll be a decentralized, public verifiable file system. Ideally before decentralizing computing, we shall decentralize the data. IPFS filled in this area, and it has a great potential to push web to the true web3 - decentralized web. This talk will talk about what problem IPFS is trying to solve, how it solves the problem, and how to use IPFS in our applications.
https://www.arcblock.io
https://hack.arcblock.io/learning
Ethereum virtual machine for Developers Part 1ArcBlock
Learn all about Ethereum Virtual Machines and how they work including basic concepts, smart contracts, best practices for developers and next steps to support various uses cases.
https://www.arcblock.io
Understanding hd wallets design and implementationArcBlock
ArcBlock Technical Learning Series Presents Understanding HD Wallets. This talk will look at the building blocks to creating a virtual currency wallet including some of the basic design ideas, and implementation methods.
ArcBlock presents Elixir ExUnit. Learn how to write a unit test for Elixir code? This talk will give an introduction to ExUnit in Elixir, what components are included in it and how to use them.
This session of ArcBlock's Technical Learning Series will introduce CQRS and commanded.
CQRS stands for Command Query Responsibility Segregation. At its heart is the notion that you can use a different model to update information than the model you use to read information.
We will have a look into what CQRS and commanded (a framework for elixir) are and how they fit together, followed by a introduction on how to implement an application using CQRS concepts with commanded in our service. "
Decipher Multi-Factor Authentication - A Developers IntroductionArcBlock
ArcBlock's Technical Learning Series presents Deciphering MFA.
Multi-Factor Authentication or MFA is used widely for enhanced account security. This talks will describe and outline the underlying technology used for MFA. For example, TOTP - Time-Based One-Time Password. This is an IETF standard - RFC 6238.
Learn how to develop and build MFA into your DApp, application or platform.
https://www.arcblock.io
https://hack.arcblock.io/learning
Introduction to aws data pipeline servicesArcBlock
This session of the ArcBlock Learning Series will teach you how to access, transform, and process stored data at scale with AWS's Data Pipeline Service. ArcBlock will also demonstrate several use case examples by looking at how ArcBlock is using AWS Data Pipeline today.
AWS Pipeline Service is a web service that helps users reliable process and moves data between different compute and storage services. It is a powerful tool that allows users to easily create complex data processing workloads without being an expert in fault tolerance, resource availability or being worried about retrying transient failures or timeouts for your individual tasks.
ArcBlock Technical Learning Series introduces Smart Contracts.
During this technical learning session, ArcBlock Engineers take a deep drive into Smart Contracts and introduce critical concepts and functionality to make smart contracts work.
https://www.arcblock.io
During this training, ArcBlock also looks key processes and best practices for developers on how to create, maintain and work with Smart Contracts. Finally, ArcBlock looks at its own use cases and provides several examples demonstrating the concepts and features shown during the training
ArcBlock Presents An Introduction to BlockchainArcBlock
A walk through on the history of blockchain including the history and transition between blockchain 1.0, blockchain 2.0 and today's latest iteration Blockchain 3.0. The presentation looks at how blockchain got started with Bitcoin and evolved with Ethereum and the smart based contract. It also looks at how today, decentralized applications and platforms are driving change in the blockchain industry by making blockchain more available to end-users and companies.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
2. What is Tendermint
• software to securely and consistently replicating an application on many
machines
• securely: works even if 1/3 or machines failed
• consistently: every non-faulty machine sees the same tx log and compute the same state
(deterministic)
• two parts:
• blockchain consensus engine: Tendermint Core, ensures that same tx are reordered on every
machine in same order
• generic application interface: ABCI, enables the tx to be processed in any programming language
2
3. Tendermint vs zookeep / etcd / consul
• untrust env vs trust env
• trust env cannot tolerant a single Byzantine fault
• BFT vs paxos / raft
• can survive < 1/3 failure vs < 1/2 failure
• state machine replication vs kv store on top of classical consensus algo
3
4. Tendermint vs bitcoin / ethereum
• PoS vs PoW
• focus on hosting arbitrary application states in a p2p BFT env
• can be used as PnP replacement for consensus engine
• other blockchain codebase could be run as an ABCI application using tendermint
consensus
• e.g. ethermint, cosmos
4
5. Tendermint vs fabric / burrow
• fabric: similar idea on consensus
• burrow: EVM + tendermint + name registry / permission / …
5
7. Components in a blockchain app
• networking: for p2p connectivity and data replication
• mempool: for broadcasting tx
• consensus: for agreeing on most recent block
• storage: account states
• VM: for executing turning-complete contracts
• app logic: e.g. permissions
7
9. What is ABCI?
• An interface that connects Tendermint consensus engine with application
• Socket based protocol
• types are defined in protobuf: ABCI
9
11. ABCI interface: Block header
message Header {
// basic block info
string chain_id = 1 [(gogoproto.customname)="ChainID"];
int64 height = 2;
google.protobuf.Timestamp time = 3 [(gogoproto.nullable)=false, (gogoproto.stdtime)=true];
int64 num_txs = 4;
int64 total_txs = 5;
// prev block info
BlockID last_block_id = 6 [(gogoproto.nullable)=false];
// hashes of block data
bytes last_commit_hash = 7; // commit from validators from the last block
bytes data_hash = 8; // transactions
// hashes from the app output from the prev block
bytes validators_hash = 9; // validators for the current block
bytes next_validators_hash = 10; // validators for the next block
bytes consensus_hash = 11; // consensus params for current block
bytes app_hash = 12; // state after txs from the previous block
b t l t lt h h 13 // t h h f ll lt f th t f th i bl k
11
12. ABCI: Core APIs
• DeliverTx
• Each tx is delivered with this message
• application need to validate the tx received from DeliverTx against current state
• application then update the app state based on the tx
• CheckTx
• same as DeliverTx, but only do tx validation
• used by Tendermint Core
• mempool check the validity of tx with CheckTx
• relay valid tx to its peers
• Commit
• compute a cryptographic commitment to the current application state
12
13. Being deterministic
• without deterministic on tx processing on the p2p network, no consensus could be
formed.
• Things to consider:
• random number generators (without deterministic seeding)
• race conditions on threads (or avoiding threads altogether)
• the system clock (you can’t rely on it, e.g. the seed)
• uninitialized memory (in unsafe programming languages like C or C++)
• floating point arithmetic: floating point determinism
• same compiler
• same platform
• same CPU instruction set
• language features that are random (e.g. iteration on map)
13
16. Concepts
• validators: the node who participants in the protocol, take turns proposing blocks
of transactions and voting on them
• height: the number of the block
• round: a turn that a validator gets to propose a block for the height
• propose: a validator generate a block for the height and broadcast it out for
validating
• prevote: if the proposed block is valid, the validator prevote the block and
broadcast prevote message out and also listen and accumulate the prevotes from
others
• precommit: if 2/3 of validators prevoted the block, the validator precommit the
block and broadcast precommit message out and also listen and accumulate the
precommits from others
• commit: if 2/3 of validators precommitted the block, the block is in committed state
16
17. Stake
• voting power: not all validators will have the same “weight” in the consensus protocol
• Proof-of-Stake: voting power is denominated in a native currency
17
25. Genesis
• genesis_time: official time of blockchain start
• chain_id: unique id for the blockchain. Shall be less than 50 symbols
• validators: list of initial validators. Could be override by app
• pub_key: validator’s pubkey
• power: voting power
• app_hash: expected application hash (returned by ResponseInfo ABCI message), upon
genesis if app’s hash does not match, Tendermint will panic.
• app_state: application state, e.g. initial distribution of tokens
25
27. Start tendermint
• cmd: tendermint node
• by default it connect to ABCI app on 127.0.0.1:26658
• for unix domain socket: do: `tendermint node –proxy_app/var/run/your-app.sock
• in-process app: counter , kvstore , nil
• apps provided by ex_abci: counter, simple_chain
27
28. Start tendermint example
$ tendermint node --proxy_app=kvstore // the in-process app
I[10-16|16:01:06.946] Starting multiAppConn module=proxy impl=multiAppConn
I[10-16|16:01:06.946] Starting localClient module=abci-client connection=query impl=localClient
I[10-16|16:01:06.946] Starting localClient module=abci-client connection=mempool impl=localClient
I[10-16|16:01:06.946] Starting localClient module=abci-client connection=consensus impl=localClient
I[10-16|16:01:06.946] ABCI Handshake module=consensus appHeight=0 appHash=
I[10-16|16:01:06.946] ABCI Replay Blocks module=consensus appHeight=0 storeHeight=0 stateHeight=0
I[10-16|16:01:06.947] Completed ABCI Handshake - Tendermint and App are synced module=consensus appHeight=0 appHash=
I[10-16|16:01:06.947] This node is a validator module=consensus addr=CE925800DC1F3AF72721343A0FE67F1829
I[10-16|16:01:06.952] P2P Node ID module=p2p ID=e7f354ef522497ba97722bf6658b4e06b1f390ab f
I[10-16|16:01:06.953] Starting Node module=main impl=Node
I[10-16|16:01:06.953] Starting EventBus module=events impl=EventBus
I[10-16|16:01:06.953] Starting RPC HTTP server on tcp://0.0.0.0:26657 module=rpc-server
I[10-16|16:01:06.953] Starting P2P Switch module=p2p impl="P2P Switch"
I[10-16|16:01:06.953] Starting MempoolReactor module=mempool impl=MempoolReactor
I[10-16|16:01:06.953] Starting BlockchainReactor module=blockchain impl=BlockchainReactor
I[10-16|16:01:06.953] Starting ConsensusReactor module=consensus impl=ConsensusReactor
I[10-16|16:01:06.953] ConsensusReactor module=consensus fastSync=false
I[10-16|16:01:06.953] Starting ConsensusState module=consensus impl=ConsensusState
I[10-16|16:01:06.953] Starting baseWAL module=consensus wal=/Users/tchen/.tendermint/data/cs.wa
I[10 16|16 01 06 954] St ti Ti tTi k d l i l Ti tTi k
28
29. What is WAL?
• Write-Ahead Logging
• Usage:
• to ensure data integration, usually used in database
• changes to data files must be written only after those changes has been logged (and flushed to
permanent storage)
• Pros:
• reduce disk writes significantly - we don’t need to flush data pages to disks every time something
changes
• easy and efficient to sync
• any changes to the data can be redone from the WAL
29
30. Tendermint consensus
I[10-16|16:01:07.954] Timed out module=consensus dur=997.249ms height=1 round=0 step=Round
I[10-16|16:01:07.955] enterNewRound(1/0). Current: 1/0/RoundStepNewHeight module=consensus height=1 round=0
I[10-16|16:01:07.955] enterPropose(1/0). Current: 1/0/RoundStepNewRound module=consensus height=1 round=0
I[10-16|16:01:07.955] enterPropose: Our turn to propose module=consensus height=1 round=0 proposer=CE925800DC1F3
I[10-16|16:01:07.962] Signed proposal module=consensus height=1 round=0 proposal="Proposal{1/0
I[10-16|16:01:07.963] Received proposal module=consensus proposal="Proposal{1/0 1:1A00E597FAD3
I[10-16|16:01:07.964] Received complete proposal block module=consensus height=1 hash=C896B7C7ACBB819C762F29BF
I[10-16|16:01:07.964] enterPrevote(1/0). Current: 1/0/RoundStepPropose module=consensus
I[10-16|16:01:07.964] enterPrevote: ProposalBlock is valid module=consensus height=1 round=0
I[10-16|16:01:07.965] Signed and pushed vote module=consensus height=1 round=0 vote="Vote{0:CE925800D
I[10-16|16:01:07.965] Added to prevote module=consensus vote="Vote{0:CE925800DC1F 1/00/1(Prevot
I[10-16|16:01:07.965] enterPrecommit(1/0). Current: 1/0/RoundStepPrevote module=consensus height=1 round=0
I[10-16|16:01:07.966] enterPrecommit: +2/3 prevoted proposal block. Locking module=consensus height=1 round=0 hash=C896B7C7
I[10-16|16:01:07.966] Signed and pushed vote module=consensus height=1 round=0 vote="Vote{0:CE925800D
I[10-16|16:01:07.967] Added to precommit module=consensus vote="Vote{0:CE925800DC1F 1/00/2(Precom
I[10-16|16:01:07.967] enterCommit(1/0). Current: 1/0/RoundStepPrecommit module=consensus height=1 commitRound=0
I[10-16|16:01:07.968] Commit is for locked block. Set ProposalBlock=LockedBlock module=consensus height=1 commitRound=0 blo
I[10-16|16:01:07.968] Finalizing commit of block with 0 txs module=consensus height=1 hash=C896B7C7ACBB819C762F29BF
30
41. Requirement
• just replicate ethereum’s MPT based account system
• A wallet consists of a key pair that user can send tokens
• Tendermint as the consensus layer
• no EVM to execute smart contracts
• the whole app state is changed tx after tx, and the app state of the last tx of a block is
committed back to tendermint as app root
41
42. Implementation
• ex_abci
• gen_server for handling: info, check_tx, begin_block, deliver_tx, end_block, commit,
flush
• merkle_patricia_tree to handle MPT (using LevelDB)
• keccakf1600_orig for sha3
• libsecp256k1 for signing and verifying
42
44. MPT
• Purpose: Maintain the Merkle Patricia Tree
• Interfaces:
• open: open a level db and restore last committed root_hash, if any
• put: update a state for a key (account address) to the trie
• get: get a state from a key from the trie
• update_block: update last_block height, and put the root_hash for the height
• get_app_hash: get the root_hash for the last block
• get_info: retrieve last_block, last_block_hash
44
45. Account
• Purpose: Maintain account system
• Interfaces:
• get: get the state of the account in the world state
• put: update the state to the account in the world state
45
46. Tx
• Purpose: sign and verify transactions
• Interfaces:
• sign: calculate the sha3 of the tx and then do ecdsa sign
• verify: calculate the sha3 of the tx and then verify against the signature
46
47. Wallet
• Purpose: create wallet, create tx and retrieve the state from the chain, acting as a
client library
• Interfaces:
• new: create a new wallet with key pair and wallet address, using sha3 and ecdsa
• declare: a special transaction that could get 10000 genesis tokens. For test purpose.
• transfer: move tokens between accounts, tx will be signed by sender. Validator will verify the
signature and make sure these conditions are satisfied:
• from / to are not the same address
• nonce is expected
• balance is greater or equal to the total tokens in the tx
• balance: get balance of an address
• nonce: get nonce of an address
• info: get info of an address
• chain_info: get the status of the chain
47