welcom ! Handel home

2022年9月15日 星期四

web3.js function 介紹

 

#Web3 Get Node

判斷目前使用者所連接是那種型態的Ethereum節點,Testrpc、Geth或Metamsak…等。

web3.version.getNode(function(error, result){

if(error){

// error handle

} else {

// do something

};

});

#Web3 Syncing

判斷使用者所連接的Ethereum節點是否正在做同步的動作。正在同步為True,否則為False。

web3.eth.getSyncing(function(error, result) {

if(error) {

// error handle

} else {

// do something

}

});


#Web3 Coinbase

查看連接Ethereum節點的coinbase address。coinbase是專門存放挖礦所獲得獎勵的read only帳戶。

在Geth Node環境下可以使用Geth console下指令web3.miner.setEtherbase()去修改coinbase address。


web3.eth.getCoinbase(function(error, result) {

if(error) {

// error handle

} else {

// do something

}

});

#Web3 Default Account

查看目前連接Ethereum節點的deault account address。deault account是read/write only。

當我們在進行某些操作例如sendTransaction時,若沒有特別指定要從哪一個帳戶發出,

則默認就是使用deault account。因為每個Ethereum節點實作的方式不同,default account不一定有定義,使用前最好檢查一下。


web3.eth.defaultAccount// 為了避免default account undefined的話, 可以改寫成下面的Code

var defaultAccount = web3.eth.defaultAccount;

if(!defaultAccount) {

web3.eth.defaultAccount = web3.eth.accounts[0];

defaultAccont = web3.eth.accounts[0];

}

#Web3 Get Balance

取得帳戶裡的餘額。分成同步和非同步兩種。

使用web3.eth.getBalance()所獲得餘額的單位是Wei。

web3.fromWei()就是把Wei轉成其他單位,下面範例則是轉成Ether。

toFixed()是我們只取到小數點後兩位數。

getBalance()的第二個參數可以指定要從那個Block讀取資料。

web3.eth.defaultBlock默認是latest,意思就是從最新的Block讀取該帳戶的餘額。


/* Get Balance Sync */

var balance = web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]), 'ether').toFixed(2);/* Get Balance Async */

web3.eth.getBalance(web3.eth.accounts[0],web3.eth.defaultBlock,function(error,result){

if(error){

// error handle

} esle {

var balance = web3.fromWei(result,'ether').toFixed(2);

}

});

#Web3 Lock/Unlock Account

上鎖和解鎖帳戶。

對於某些特定的操作必須先把帳戶先unlock才能進行,例如sendTransaction()相關操作。

web3.personal.unlockAccount()的第三個參數duration可以設定要解鎖多久。

若使用者連接的Etherum節點是Testrpc或Metamask,可以不須作lock/unlock動作。

若是在Geth環境下,則在sentd transaction前必須先unlock帳戶。

/* Lock Account */

web3.personal.lockAccount(account, passwd, function(error, result){

if(error) {

// error handle

} else {

// do something

}

});

/* Unlock Account */

web3.personal.unlockAccount(account, passwd, duration,function(error, result){

if(error) {

// error handle

} else {

// do something

}

});


#Web3 Send Transaction

傳送交易。

web3.eth.sendTransaction()的第一個參數txnObject是一個JSON format的物件。

txnObject可以指定這次transaction的資訊。

=>from是指從哪個帳戶送出,若無指定默認是default account。

=>to是送到那個帳戶。

=>value則是要傳送的金額。


其他還有像是gas、 gasPrice、data、nonce…等參數可以指定。

傳送完後可以得到transaction hash,使用web3.eth.getTransactionReceipt(hash)去查詢transaction的狀態。


var txnObject = {

"from": fromAccount,

"to": toAccount,

"value": web3.toWei(1, 'ether'),

// "gas": 21000,          // (optional)

// "gasPrice": 4500000,   // (optional)

// "data": 'For testing', // (optional)

// "nonce": 10            // (optional) 

};


web3.eth.sendTransaction(txnObject, function(error, result){

if(error) {

// error handle

} else {

var txn_hash = result; //Get transaction hash

}

});

#Web3 Deploy Contract

Deploy contract有兩種方式,

一種是使用Web3.js contract的new(),另一種是使用sendTransaction()的方式。

這裡只列出contract new()的方式,sendTransaction()方式可以從Web3ApIScript的範例中看到。

在deploy contract之前我們需要先complie contract的sol檔來獲得abi和bytecode。

利用abiDefinition建立contractInstance並將bytecode放入data欄位中。constructor_param則是contract 初始化所使用的參數。

使用contract new()來進行佈署。執行完new()之後,callback function一共會被呼叫兩次。

第一次回傳transaction hash,第二次則是contract address。


var contractInstance = web3.eth.contract(abi);

var params = {

from: fromAccount,

data: bytecode,

gas: gas

};

var constructor_param = 10; 

//contract init

paramcontractInstance.new(constructor_param, params, function(error, result){

if(error) {

// error handle

} else {

if(result.address){

var contractAddress = result.address;

} else {

var txhash = result.transactionHash;

}

}

});




Web3 Interact Contract

與smart contract互動的方式主要分成,取得contract資料的call和改變contract資料的send。

使用call只是單純取得contarct資料,並不會改變contract的狀態,所以不會花費任何費用。

呼叫call()時要有contract abi和contract address。contract.METHOD.call()的METHOD是放contract中所定義的function名稱,以下面的例子就是getNum。


var contract = web3.eth.contract(abi);

var contractInstance = contract.at(address);

/* contractInstance.METHOD.call, METHOD=getNum is the function of contract*/

contractInstance.getNum.call(function(error, result) {

if (error) {

// error handle

} else {

// result is string

// do something

}

});


若想要改變contract中的資料就必須使用send。這裡的send指的是send transaction。

因為會改變contract中的資料,需要繳交手續費給礦工幫忙把資料紀錄在block中。

改變的資料一樣會存放在block中,等同於發起了一筆transaction。使用contract.METHOD.sendTransaction()來改變contract資料。

回傳該transaction的hash。METHOD一樣是指contract所定義的function名稱,下面例子就是setNum。parameterValue則是要賦予contract的新值。


var contract = web3.eth.contract(abi);

var contractInstance = contract.at(address);

var txnObject = {

from: fromAccount,

gas: estimatedGas

};// contractInstance.METHOD.sendTransaction, METHOD=setNum is the function of contract


var parameterValue = 5 ;

contractInstance.setNum.sendTransaction(parameterValue, txnObject,function(error, result){

if(error){

// error handle

} else {

// do something

}

});


以太坊生態系統 Ecosystem Resources(生態資源)


學習和理解以太坊生態系統的可用DApps,服務,寫作和知識庫的指南,

專注於生態系統發展


Wallets(錢包)

• Metamask-支援ERC Token的Chrome擴充套件以太幣錢包

• Gnosis multisig wallet-經過稽核的多重簽名錢包

• Mist-瀏覽並使用以太坊網路上的DApps

• Exodus-帶有Shapeshift整合的桌面錢包

Web Wallets

• MyEtherWallet-開源工具,可輕鬆安全地與區塊鏈進行互動

• Ether Address Lookup-用於網路釣魚防護和Eth地址突出顯示的Chrome擴充套件程式

• MyCrypto-用於生成以太錢包,處理ERC-20Token以及更輕鬆地與區塊鏈互動的開源客戶端工具

• Portis-基於網路的錢包,方便使用者登入DApp

• Eth lightwallet–節點和瀏覽器的輕量級JavaScript錢包

• SpankCard-瀏覽器中的以太坊錢包,支援付款渠道

• Mnemonic generator–生成單詞助記符和關聯的公鑰/私鑰對。選擇“以太坊”作為數字貨幣以生成以太坊地址。適用於truffle-hd-wallet。

Mobile Wallets(手機錢包)

• Toshi-移動DApp瀏覽器和錢包

• Cypher– 移動DApp瀏覽器

• Trust– 適用於ERC Tokens的移動錢包

• Status-適用於以太坊的免費開源移動作業系統

• imToken-功能豐富的數字資產移動錢包,支援多鏈資產管理,DApp瀏覽和安全,私密的價值交換

• Jaxx-手機和桌面錢包,集成了Shapeshift支援

• WallETH-原生Android以太坊錢包

• eth-wallet-light–為移動裝置最佳化的輕量級JavaScript錢包

Hardware Wallets(硬體錢包)

• Trezor-原裝硬體錢包

• Ledger-支援多種加密貨幣和Token

• KeepKey-簡單的硬體錢包

Gas price calculators and tools(Gas價格計算器與工具)

• EthGasStation-估算tx價格與時間的網站

• Petrometer-彙總從指定的以太坊地址傳送的所有交易的每日和總Gas消耗量

• CryptoProf-用於智慧合約的Gas分析器


Services(服務)

• Oracalize-適用於智慧合約的Oracle服務

• Infura– API閘道器,你無需託管自己的ETH節點

• Quiknode-用於啟動個人Parity / Geth節點的服務

• Regis-數字資產註冊管理機構

• Viant-如果用例是面向業務流程,請考慮使用Viant作為後端

• uPort-全部身份解決方案

• Ether Address Lookup-用於網路釣魚防護和Eth地址突出顯示的Chrome擴充套件程式

• Netstats-以太坊網路統計

• ENS– ENS提供了一種安全且分散的方式,使用簡單,易讀的名稱來處理區塊鏈內外的資源

• Name Bazaar-透過以太坊名稱服務註冊的名稱交換的點對點市場

• Quantstamp-一項服務,提供收費的自動和手動智慧合同安全稽核

• SmartCheck-針對安全漏洞和最佳實踐的Solidity原始碼的靜態分析

• MD4 Online Hash Function-使用各種雜湊演算法選項雜湊輸入的工具

• iExec SDK-使智慧合約能夠在鏈外執行功能或應用程式。支援作為Docker映象提供的任何遺留應用程式。

Knowledge/Education(知識/教育)

• Awesome Buggy ERC20 Tokens-受影響的ERC20智慧契約中的漏洞集合

• Solidity idiosyncrasies– Solidity陷阱、限制和特質

• Ethereum development with Go–基於Go語言的以太坊開發書籍

• Consensys Academy– 課程

• B9Lab– 付費課程

• Blockgeeks-關於Solidity/ dapp開發的付費課程。

• Chainshot building blocks-免費的基於專案的課程和挑戰

• Delegate call-問答網站

• Stackexchange-問答網站

• r/EthDev– reddit分模組

• Ethernaut– Web3 / 基於戰爭遊戲的Solidity

• Reducing Gas Fees-減少交易Gas的提示和技巧

• Dapp University-免費影片教程

• Attacks on Smart Contracts

• Zastrin-關於Solidity / Dapp Development的付費課程。

Security best practices(安全最佳實踐)

• Smart contract best practices– 由 ConsenSys製作

• Safety wiki-以太坊基金會安全維基

Solidity Games!(Solidity遊戲)

• OpenZeppelin Ethernaut

• Cryptozombies-世界上最好的不死教程

• Capture the Ether

Scaling(擴充套件)

• Comprehensive Medium article關於以太坊的各種解決方案

Reference(參考)

• Wiki-覆蓋與以太坊相關的所有事物的以太坊維基

• Yellow Paper-以太坊的正式規範

• Beige Paper-用non-yellow-paper syntax語法重寫黃皮書

• EthOn-本體論是域內概念和關係的形式化,EthOn是用RDF和OWL編寫的

• Mastering Ethereum–由Andreas M. Antonopoulos,Gavin Wood和其他許多人編寫

• EVM opcodes-以太坊操作碼和指令參考

• EVM illustrated-這是關於以太坊虛擬機器的插圖文件

• 4bytes-常用智慧合約功能的4位元組識別符號列表功能簽名

• Solidity cheat sheet– Solidity語法的快速概述

Governance(監管)

• Ethresear.ch-參與以太坊研究工作的半公共論壇,包括但不限於:Casper,Sharding,EVM改進,Crytpeconomics,Plasma和State-channels

• Fellowship of Ethereum Magicians-該討論區促進整個以太坊社群內個人之間的有意義的溝通

• EIPs-以太坊改進提案庫

Block explorers(區塊瀏覽器)

• Etherscan-檢視Eth交易和合約程式碼的主流方式

• POA Explorer-開源以太坊區塊瀏覽器,由Ethprize資助,由POA開發

• QuickBlocks– QuickBlocks是一組軟體庫,應用程式,工具和示例,允許您檢索以太坊區塊鏈資料。更快、具有更高的資訊內容、以完全分散的方式、以完全自動化的方式和高度免維護

• Etherchain lite-輕量級私人以太坊鏈瀏覽器

• Alethio EthStats 2.0即將到來

• Supermax-以太坊上智慧合約的活動和事件日誌的實時資料饋送

Decentralized Exchanges(去中心化交易所)

• Airswap

• Radar relay

• ERC Dex

• DDEX

• Ethfinex

• Shark Relay

• LedgerDex

• Bamboo Relay

• Instex

• Starbit

• Opensea.io

• Bancor

• Kyber

• Gnosis Dutch Exchange

Incentivisation / Monetisation Tools(激勵/貨幣化工具)

• Gitcoin-為開源提供資金或尋找開源工作的賞金網路

• CodeFund– Ethical Advertising Platform for Open Source

Awesome lists(其他範例)

• Awesome Cryptoeconomics-密碼經濟研究和學習材料的管理列表

• Awesome Solidity-一個很棒的實體資源列表,庫,工具等等

• Awesome EVM– 以太坊虛擬機器列表

• Awesome State-Channels-在以太坊上有關狀態通道的資源管理列表.

• DEX protocols–去中心化交易的協議列表

• Ethereum Token Standards– 以太坊Token標準的詳盡列表

原來小白要成為技術大咖,要學這麼多,註定又是一個接一個的學習型週末!

如果大家也有學習資源,歡迎大家掃碼進群,一起分享,共同進步!

小編提醒大家,一定記得點贊、收藏、留言和轉發哈

原文連結:

https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/Tools.md

https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/EcosystemResources.md

以太坊開發者工具列表


# Solidity-最流行的智慧合約語言

# Truffle-最流行的智慧合約開發、測試和部署框架。

#  MetaMask– 可與以太坊Dapps互動的Chrome擴充套件程式錢包。

# Truffle boxes-以太坊生態系統的打包元件


Developing Smart Contracts(智慧合約開發)

Smart Contract Languages(智慧合約語言)

• Solidity– 以太坊智慧合約語言

• Bamboo– 一種靈活的智慧合約語言

• Vyper– 新的實驗程式語言

• LLL-低級別的Lisp語言

Frameworks(開發框架)

• Truffle-最流行的智慧合約開發,測試和部署框架,包括Truffle、Ganache和Drizzle。

• Embark– DApp開發框架

• Dapp– DApp開發框架,DApple的繼任者

• Populus–擁有可愛動物圖片的以太坊開發框架

• Etherlime-基於ethers.js的Dapp部署框架

• Cliquebait-透過docker例項簡化智慧合約應用程式的整合和測試,它與真正的區塊鏈網路非常相似

IDEs(整合開發環境):

用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、除錯器和圖形使用者介面等工具

• Remix– Web IDE內建靜態分析,測試區塊鏈VM

• Atom–  Atom Solidity Linter和Etheratom的原子編輯器

• Pragma– 非常簡單的solidity Web IDE,自動生成的智慧合約介面。 autocomplete-solidity和language-solidity包

• Superblocks Studio-編寫,構建和部署智慧合約

• Vim solidity– solidity的Vim語法檔案

• Visual Studio Code– Visual Studio Code擴充套件中增加了對Solidity的支援

• Intellij Solidity Plugin-適用於JetBrains IntelliJ Idea IDE(免費/商業)的開源外掛,具有語法高亮,格式化,程式碼完成等功能。

• YAKINDU Solidity Tools-基於Eclipse的IDE,具有文字敏感特性,比如程式碼完成和幫助、程式碼導航、語法著色、內建編譯器、快速修復和模板。

• Eth Fiddle-由Loom網路開發的IDE,允許開發者編寫、編譯和除錯智慧契約,便於共享和查詢程式碼片段。


Test blockchain networks(區塊鏈網路測試)

• Ganache-用於測試以太坊區塊鏈的應用程式,具有可視UI和日誌

• Kaleido-使用Kaleido打造區塊鏈聯盟網路,非常適合PoC和測試

• Local Raiden-在docker容器中執行本地Raiden網路以進行演示和測試

• Private networks deployment scripts-私有PoA網路的開箱即用部署指令碼

• Local Ethereum Network-私有PoW網路的開箱即用部署指令碼


Test Ether faucets(測試乙太網水龍頭)

• Rinkeby faucet

• Kovan faucet

• Ropsten faucet

Truffle 工具說明

 


Truffle套件是一個開發乙太坊(Ethereum)區塊鏈DApp(分散式應用程式)的開發環境,是開發DApp的一站式解決方案,

功能包括:

     編譯合約、

    部署合約、

    開發DApp前端、

    測試DApp等。

 

Truffle套件主要有3個模組:

Truffle 太坊(Ethereum)區塊鏈DApp開發環境。

Ganache Ganache可以創建本地區塊鏈網路,用於測試智合約,你可以在本地區塊鏈網路上部署合約、開發應用程式、運行測試和執行其他任務,不需要付任何費用。

Drizzle 前端庫的集合,使編寫dapp使用者介面更容易。

 

 

Truffle Ethereum spec

內置智慧合約編譯、連結、部署和二進位管理功能。

用於快速開發的自動化合約測試功能。

腳本化、可擴展的合約部署和遷移框架。

強大的網路管理功能,可以部署到任意數量的公共和私有網路。

使用EthPMNPM進行包管理,使用ERC190標準。

互動式控制台工具可以直接與合約通信。

可配置的構建管道,支援緊密集成。

強大的外部腳本運行器功能,支援在Truffle環境中執行外部腳本。

 

 

 

>>Truffle 安裝說明

安裝 Node NPM

Truffle 框架依賴Node,需要使用npm安裝。

首先需要安裝nodenpm會同時安裝,下載node,按提示安裝。

安裝完後,可以驗證一下node版本:

$ node -v

安裝 Truffle

使用npm安裝Truffle框架:

$ npm install -g truffle

驗證truffle安裝:

$  truffle --version
Truffle v5.0.35 - a development framework for Ethereum
...

 

>>Truffle 創建智能合約專案

 

可以使用truffle init命令可以創建原始的專案範本,但是對於初學者,使用Truffle Box可能更簡單,

Truffle Box中包含了很多示例應用程式和專案範本。我們將使用MetaCoin box,它將創建一個通證,可以在帳戶之間傳輸:

1. 創建專案目錄:

$mkdir MetaCoin
$cd MetaCoin

2. 下載(unbox) MetaCoin box 專案範本:

$truffle unbox metacoin

 

注意: 你可以使用truffle unbox命令下載任何其他 truffle box

注意: 要創建一個不包含智慧合約的原始Truffle項目,可使用Truffle init

注意: 你可以使用一個可選的--force參數來初始化目前的目錄中的專案,而不管它的狀態如何(例如,即使它包含其他檔或目錄)

          這適用於initunbox命令。注意,這可能會覆蓋目錄中的檔。

 

Kevin@QIKEGU g:\qikegu\ethereum\MetaCoin
> tree /f

專案路徑列表

G:.
  LICENSE
  truffle-config.js

├─contracts
      .placeholder
      ConvertLib.sol
      MetaCoin.sol
      Migrations.sol

├─migrations
      1_initial_migration.js
      2_deploy_contracts.js

└─test
        .placeholder
        metacoin.js
        TestMetaCoin.sol

contracts    目錄 智慧合約原始檔案目錄。

migrations 目錄 遷移檔目錄,遷移檔都是javascript腳本,幫助我們把智慧合約部署到乙太坊。

test              目錄 測試代碼目錄。

truffle-config.js  Truffle專案設定檔,例如,可以在裡面配置網路。

 

 

>>Truffle –編譯合約

 

目標文件

所有的合約原始檔案都位於專案的contracts/目錄中。由於合約是用Solidity語言編寫的,所以合約原始檔案的副檔名都是.sol

相關的Solidity庫檔的副檔名也是.sol

如果是原始的Truffle專案範本(通過truffle init創建),裡面將包含一個Migrations.sol原始檔案,用於部署合約。

如果使用 Truffle Box,裡面將包含多個檔。

$truffle compile xxx  <== 編譯指定合約

 

$truffle  compile all  <== 全部編譯

 

 

編譯構件(artifact)

編譯的構件將放在專案根目錄下的build/contract/目錄中, 如果此目錄不存在,則創建該目錄。

這些構件是Truffle內部工作不可或缺的,它們在應用程式的成功部署中扮演著重要的角色。你不應該編輯這些檔,在編譯和部署合約時,它們將被覆蓋。

依賴項

可以使用Solidity語言的import命令聲明合約依賴項。Truffle將按照正確的順序編譯,並確保所有依賴項都被編譯。依賴關係可以通過2種方式指定:

通過檔案名導入依賴項

要從其他檔導入合約,可以將以下代碼添加到Solidity原始檔案中:

import "./AnotherContract.sol";

這將導入另一個原始檔案AnotherContract.sol中的所有合約,導入檔的路徑是基於當前原始檔案的相對路徑。

注意,Solidity語言還允許其他導入語法。有關更多資訊,請參閱Solidity文檔。

 

從外部包導入合約

Truffle支持通過 EthPM NPM 安裝依賴項。要從依賴項導入合約,可使用以下語法

import "somepackage/SomeContract.sol";

 

這裡,somepackage表示通過EthPMNPM安裝的包。SomeContract.sol表示該包提供的Solidity原始檔案。

注意,在搜索NPM安裝的包之前,Truffle將首先搜索EthPM安裝的包,因此在命名衝突的罕見情況下,將使用EthPM安裝的包。

有關如何使用Truffle包管理特性的更多資訊,請參閱Truffle EthPMNPM文檔。


 

 

虛擬幣 市場現況 及 交易特性

虛擬幣公練特性介紹 

 



BTS

SOLana

Luna

BitCoin

ETH



BTS BitShares ( 比特股)


bts-cn-docs
比特股 BitShares (BTS) 中文技术文档
建这个库的目的是搜集和整理比特股 BitShares (BTS) 相关的中文技术文档,方便开发者和爱好者使用,以及共同维护。

目录/索引
• 
如何编译
○ 使用 Visual Studio 2015 编译 BitShares-Core
○ Win 10 编译bitshare-core
○ CentOS编译BTS节点程序及命令行钱包
• 
如何集成/对接
○ BTS交易所对接指南(单节点版)

相关资料

英文资料
• https://how.bitshares.works/ 针对终端用户的文档
• https://dev.bitshares.works/ 针对开发者的文档
• https://docs.bitshares.build/ 另一批文档
• https://github.com/bitshares/bitshares-core/wiki 一些核心开发文档
• https://docs.bitshares.org/ 目前是重定向到 https://how.bitshares.works/
• https://doxygen.bitshares.org/hierarchy.html 这个是从代码生成出来的文档,包含代码里的文档性注释。
• https://github.com/bitshares/awesome-bitshares 相关资料链接大全,有100多个链接
• https://bitsharestalk.org/index.php?topic=23925.msg303814#msg303814 搭节点
• https://steemit.com/bitshares/@ihashfury/distributed-access-to-the-bitshares-decentralised-exchange 搭网页钱包

钱包
• 网页钱包
○ https://wallet.bitshares.org/
○ https://develop.bitshares.org/
○ https://bts.exchange/
○ https://ex.xbts.io/
○ https://iobanker.com/
○ GDEX https://www.52bts.net/
○ https://dex.delion.online/
○ https://evrazdex.org/
○ 测试网 https://test.xbts.io/
• 个性化网页钱包
○ 鼓鼓 https://m.magicw.net/
○ XBTS APP (支持AMM) https://app.xbts.io/
• 手机钱包
○ BTS++ https://app.btspp.io/
○ BiTSy http://www.bitsy-wallet.com/
○ EVRAZ https://github.com/evraz-org/EVRAZ-smartphone-application
• 轻钱包下载
○ https://github.com/bitshares/bitshares-ui/releases/latest
• 重钱包(节点)下载
○ https://github.com/bitshares/bitshares-core/releases/latest

扩展 API
• https://api.bitshares.ws/docs
• https://api.bitshares.build/api-docs
• https://cryptofresh.com/api/docs
• https://xbts.io/cmc-api
• https://api.testnet.bitshares.ws/docs - 测试网

区块链浏览器
• https://blocksights.info
• https://bts.ai
• https://cryptofresh.com

数据分析
• https://kibana.bts.mobi

中文资料
(以下排名不分先后)
• boombastic 的 Steemit 博客 https://steemit.com/@boombastic
○ BitShares API 服务器架设指南 - 个人篇
○ BitShares API 服务器架设指南 - 公共API篇
• ETY001 的文章
○ 用 docker compose 搭建 bitshares elastic search
○ 重写了我的bitshares-elasticsearch的docker-compose
○ 对之前的 Bitshares Elastic Search 增加 Kibana
○ 解决nginx反代kibana显示空白页的问题
○ 快速搭建私有单节点 Bitshares Testnet(一)
○ 快速搭建私有单节点 Bitshares Testnet(二)
○ 使用 bitsharesjs 库创建新用户Demo
○ 在自有私链上使用bitshares-js库
• shulthz的几个教程 https://shulthz.github.io/
○ 简易cli_wallet命令行钱包的教程
○ BTS: 帐号(云)模式转为本地钱包模式
○ BTS: 如何查看三对公私钥
○ BTS(比特股)新手相关教程-资料-钱包内盘-承兑商-社交等信息汇总
• 窗外一叶 的博客 https://www.cwyyprog.com/tag/bitshares/
○ Win 10 编译bitshare-core witness node
○ 浏览/编译bitshares源代码的配置
○ 比特股源码阅读笔记系列
• legendx 的 Steemit 博客 https://steemit.com/@legendx
○ DPOS共识算法 -- 缺失的白皮书
• Cifer 的 Steemit 博客 https://steemit.com/@cifer
○ Graphene 源码阅读 ~ 基础知识
○ Graphene 源码阅读 ~ 源码结构
○ Graphene 源码阅读 ~ 数据库篇 ~ 对象模型
○ Graphene 源码阅读 ~ 数据库篇 ~ 索引模型
○ Graphene 源码阅读 ~ 数据库篇 ~ 对象序列化
• 老鱼 (chaimyu) 的 Steemit 博客 https://steemit.com/@chaimyu
○ bitshares研究系列【mac下安装bitshares】
○ bitshares研究系列【visual studio编译调试bitshares】
○ bitshares研究系列【bitshares-ui代码分析之基本结构】
○ bitshares研究系列【bitshares-ui代码分析之api调用流程】
○ bitshares研究系列【bitshares-core api实现】
○ bitshares研究系列【operation的实现】
• 小福星(Pluswave)的博客 https://blog.xiaofuxing.name/
○ 比特股钱包模式和账号模式的安全性差异
○ bitsharesjs库详解二:交易广播
○ 比特股命令行神器:uptick (注:python)
○ bitsharesjs库详解一:ChainStore
○ 源码解析:bitshares-ui的钱包和帐号管理
○ 使用NODEJS解密bitshares网页钱包备份文件
○ 身份认证概念原型发布,目前的反馈和我的思考
• 剑有偏锋的比特股开发专题博客 http://www.jianshu.com/c/19c5791c8c7d
○ 比特股环境搭建
○ 编译比特股网页钱包
○ 比特股全节点witness_node参数翻译
○ 比特股命令行钱包cli_wallet参数翻译
○ 搭建比特股的水龙头注册服务
○ 比特股相关资源链接
• 比特帝国教程 http://jc.btsabc.org/
○ 自建节点(重钱包)
○ BTSBots——比特股内盘做市机器人开放使用教程(Javascript)
○ BTS内盘自动交易机器人的例子和源码(Python)
○ 比特股合规设计功能 ---“白名单”使用教程
○ 二元预测市场举例
○ 一单将资产的“手续费资金”全部刷出
○ 在windows环境下实现BTS2.0自动分红的一种方法
• 比特股论坛中文版 https://bitsharestalk.org/index.php/board,4.0.html
○ 见证人(witness)安装设置教程(老)
• Hi区块链资讯站及公众号 https://www.hibtc.org/
○ 一分钟安装完比特股重钱包,可以媲美中心化交易所一样的交易速度
• 邱绍锡的博客 https://qiushaoxi.com/
○ Bitshares 私链部署witness节点 / 原文
○ 使用 NodeJS 调用 API 接口 进行转账和 Bitshares 内盘交易 / 原文
• BTS500的博客 https://bts500.github.io/categories/Bitshares/
○ Bitshares 开发者系列(1)—— Api接口的访问方式
○ Bitshares 开发者系列(2)—— Bitsharesjs-ws 库源码解读
• 胡桃夹子的博客 http://hutaow.com
○ BitShares插件开发入门
• chouheiwa的github
○ Java-Cli-Wallet —— 一个java版的Cli-wallet库(支持转账,挂单,注册账户,查询信息等等常用api)
○ iOS-Cli-Framework —— 一个专门为iOS设备编写的cli-wallet库
• 本库中 @abitmore 的部分原创文档也同步发到 Hive 博客 https://hive.blog/@abit


BlockChain 共識機制簡介

 


ETH POS 合併成功 2022-09-15

 ETH正徹底改變金融世界

紀念這金融史的一刻





2022-9-15 14:00 by Handel






合併(Merge)不是以太坊的最終目的地,發展路徑是:
合併(Merge)= >激增( Surge ) = >邊緣( Verge )
Merge是關於從POW 轉移到POS;
Surge 是關於引入分片;
Verge 是關於Verkle 樹,以幫助優化以太坊上的存儲並幫助減少節點大小。

長遠的目標:
• 讓以太坊具有量子抗性,這樣你就不會隨便運行量子計算機來生成別人的私鑰;
• 如果zkEVM運行良好,那麼在基礎層中製作txn空間,使滾動的成本大大降低;
• 尋找更強大的密碼學;
• 最後,保持開放的心態!


2022年2月10日 星期四

Mosquitto acl topic存取權限管理

  mosquitto topic 設定ACL(Access Control List)


>>對於 Tpoic 的讀寫 有三種權限

< read , write , readwrite >


>>對於 MQTT client user  管理權限設定有三類


1#General section                 通用user 權限

2#User specific section         指定user 權限

3#Client or user ID section   由登入帳號指定權限


>> 設定格式

1#General section   < 用於不定隨機 登入者之權限管理 >

   以 topic 關鍵字 開頭 定義 指定的topic 相關讀寫權限給 不特定的 登入者 

   但若登入者有登入的 user ID 則不是適用 


 topic read  $SYS/#

 topic write $log/#

 topic readwrite $node/#



2#User specific section    <用於 指定user 權限管理 授權特定管理者帳號的操作> 

    以 user 關鍵字開頭 定義接下來的 topic 權限清單

    相關清單 均為指定之user ID 之權限


 user JOHN

 topic read $USER/#

 topic write $USER/#

 topic readwrite $USER/+/GPIO


3#Client or user ID section   <由登入帳號指定權限 授權使用者帳號 管理操作topic 權限 >

   適用在 以認證方式登入 之 user ID 以  pattern 關鍵字開頭 定義 相關之topic 讀寫權限

   %c  client ID  , %u user ID


 pattern  read   $USER/connect/%c/state

 pattern  write  $USER/connect/%c/data

 pattern  readwrite $USER/device/%u/control