java實現以太坊p2p網路
A. android有以太坊的軟體嗎
以太坊也使用區塊鏈技術 只是比比特幣的區塊鏈圖靈完備 開源使用更便捷 任何人都可以在以太基礎上創建自己的應用
B. 以太坊開發:如何在Windows下開發一個簡易Da
我的電腦->屬性->高級->環境變數->系統變數中添加以下環境變數:
JAVA_HOME值為:安裝JDK的目錄, 我的為C:\Program Files\Java\jdk1.6.0_34
CLASSPATH值為:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;(注意前面的".;"要加上)
Path: 在開始追加 .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意前面的".;"要加上)
安裝完成之後,可以在檢查JDK是否安裝成功。打開cmd窗口,輸入java –version 查看JDK的版本信息。
C. 以太坊架構是怎麼樣的
以太坊最上層的是DApp。它通過Web3.js和智能合約層進行交換。所有的智能合約都運行在EVM(以太坊虛擬機)上,並會用到RPC的調用。在EVM和RPC下面是以太坊的四大核心內容,包括:blockChain, 共識演算法,挖礦以及網路層。除了DApp外,其他的所有部分都在以太坊的客戶端里,目前最流行的以太坊客戶端就是Geth(Go-Ethereum)
D. 以太坊的核心概念
基於比特幣網路的核心思想,以太坊項目提出了許多創新的技術概念,包括智能合約,基於賬戶的交易,以太幣和燃料等。
E. Java實現乙太網幀的封裝
乙太網幀的封裝:
package fz;
import java.io.*;
public class Fengzhuang {
/**
* @param args
*/
public static void main(String[] args) {
try {
File f1 = new File("input");
FileInputStream in = new FileInputStream(f1);
FileOutputStream out = new FileOutputStream("output");
out.write(0xAA);
out.write(0xAA);
out.write(0xAA);
out.write(0xAA);
int s;
int len = in.available();
for (int j = 0; j < len; j++) {
s = in.read();
out.write(s);
}
out.write(0xff);
out.write(0xff);
out.write(0xff);
out.write(0xff);
in.close();
out.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
加入目標地址還有末尾的校驗碼~
F. 怎樣用Java實現網橋自學習演算法
網橋的自學習演算法原理
珞辰
網橋:在數據鏈路層可以用網橋設備來擴展乙太網。網橋工作在數據鏈路層,它根據MAC 幀的目的地址對收到的幀進行存儲轉發和過濾。當網橋收到一個數據幀時,並不是向所有的介面轉發這個數據幀,而是會進行有條件的轉發(網橋會丟棄CRC檢驗有差錯的幀以及幀長過短和過長的無效幀)再根據此幀的目的MAC地址,然後查找轉發表(網橋會自己維護轉發表,轉發表中每一條目都記錄了到達某個目的MAC地址的數據幀可以從那個介面進行轉發)根據轉發表中的條目逐步匹配看該從那個介面轉發或是否需要丟棄該數據幀。最簡單的網橋只有兩個介面(這里所講的網橋都是兩個介面的網橋)。
使用網橋設備的優點:
1,過濾通信量,增大吞吐量(網橋可以隔離碰撞域提高網路的吞吐量)
2,擴大了物理網路的范圍(擴展乙太網)
3,提供了可靠性(隻影響單個網段)
4,可以互連不同的物理層,不同MAC子層和不同速率
使用網橋設備的缺點:
1,使用CMSA/CD演算法增加了時延
2,不能進行流量控制,緩存存儲空間可能會發生溢出
3,會產生廣播風暴
網橋自學習和轉發幀的一般步驟:
1,網橋收到一幀後先進行自學習。查找轉發表中與收到數據幀的源地址有無匹配的項目。如果沒有,就在轉發表中增加一個項目(記錄數據幀的源地址,進入網橋的介面和時間)。如果有,則把原來的項目進行更新。
2,轉發幀。查找轉發表中與收到數據幀的目的地址有無相匹配的項目。如果沒有,則通過其他的介面(但進入網橋的介面除外)進行轉發。如果有,則按轉發表中給出的介面進行轉發。但應當注意,若轉發表中給出的介面就是該幀進入網橋的介面,則應該丟棄這個數據幀(因為這種情況不需要經過網橋進行轉發)。
3,使用生成樹演算法,即互連載一起的網橋在進行彼此通信後,就能找出原來的網路拓撲的一個子集。在這個子集里,整個連通的網路中不存在迴路,即在任何兩個站點之間只有一條路徑。
for example: 如圖所示,6個站點通過透明網橋B1和B2連接到一個擴展的區域網上。初始時網橋B1和B2的轉發表都為空。假設需要傳輸的幀序列如下:H2傳輸給H1;H5傳輸給H4;H3傳輸給H5;H1傳輸給H2;H6傳輸給H5。請給出這些幀傳輸完後網橋B1和網橋B2的轉發表。假設轉發表表項的格式為:[ 站點, 埠 ]。
發送的幀B1轉發表 B1的處理 B2轉發表 B2的處理
H2--->H1 H2,1 登記,轉發 H2,1 登記,轉發
H5--->H4 H5,2 登記,轉發 H5,2 登記,轉發
H3--->H5 H3,2 登記,丟棄 H3,1 登記,轉發
H1--->H2 H1,1 登記,丟棄
H6--->H5 H6,2 登記,丟棄
解釋說明:
1,H2主機向H1主機發送幀。連接在同一個區域網上的主機H1和網橋B1都能收到H2主機發送的數據幀。網橋B1收到這個數據幀後,先按源地址H2查找轉發表。這時因為網橋B1的轉發表為空,於是就把地址H2和收到此幀的介面1 寫入到轉發表中。這就表示,以後若收到要發給H2的幀,應當從網橋B1的這個介面1 轉發出去。接著再按目的地址H1查找轉發表。轉發表中沒有H1的地址,於是通過除收到此幀的介面1 以外的所有介面轉發此幀。網橋B2 從其介面1 收到這個轉發過來的幀。網橋B2按同樣的方式處理收到的幀。網橋B2的轉發表中沒有H2的地址,因此在網橋B2的轉發表中寫入地址H2 和介面1 。網橋B2的轉發表中沒有H1的地址,因此網橋B2會通過除接收此幀的介面1 以外的所有介面轉發這個幀。(H1本來就可以直接收到H2發送的數據幀,為什麼還要讓網橋B1和B2盲目地轉發這個幀呢??? 答案是:這兩個網橋當時並不知道網路的拓撲結構,因此要通過自學習過程才能逐步弄清所連接的網路拓撲,建立起自己的轉發表)
2,H3主機向H5主機發送數據幀。首先看網橋B1,網橋B1從其介面2收到這個數據幀。網橋B1的轉發表中沒有H3,因此在B1的轉發表中寫入地址H3 和介面2。再查找目的地址H5。現在網橋B1的轉發表中可以查詢到H5,其轉發的介面是2,和這個幀進入網橋B1的介面一樣。於是網橋B1知道,不用自己轉發這個幀,H5也能收到H3發送的幀。於是網橋B1把這個幀丟棄,不再繼續轉發了。再看網橋B2,網橋B2從其借口1 收到這個幀。網橋B2的轉發表中沒有H3,因此在B2的轉發表中寫入地址H3 和介面 1。再查找目的地址H5。現在網橋B2的轉發表中可以查詢到H5,其轉發的介面是 2 ,於是網橋B2直接將這個幀從介面2 轉發出去。
3,H6主機向H5主機發送數據幀。首先看網橋B2,網橋B2從其介面2 收到這個數據幀。網橋B2的轉發表中沒有H6,因此在B2的轉發表中寫入地址H6 和介面 2。再查找目的地址H5。現在網橋B2的轉發表中可以查詢到H5,其轉發的介面是2,和這個幀進入網橋B2的介面一樣。於是網橋B2知道,不用自己轉發這個幀,H5也能收到H6發送的幀。於是網橋B2把這個幀丟棄,不再繼續轉發了。再看網橋B1,其根本不會收到H6主機向H5發送的數據幀,所以不會有任何其他操作。
PS:在網橋的轉發表中寫入的信息除了地址和介面外,還有幀進入該網橋的時間。網橋中的介面管理軟體周期性的掃描轉發表中的項目。只要在一定時間以前登記的都要刪除。這樣就使得網橋中的轉發表能反映當前網路的最新拓撲狀態。還有一點網橋是一種工作在數據鏈路層的網路設備,它能對於接收到的數據幀進行有條件的轉發並且能隔離沖突域。
G. 以太坊的L2從技術邏輯上講能能實現得了么謝謝
H. BTC、LTC、ETH、ETC、BCH這些分別是什麼幣呀
分別是:
比特幣
比特幣(BitCoin)的概念最初由中本聰在2009年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
比特幣現金
比特幣現金(Bitcoin Cash)是由一小部分比特幣開發者推出的不同配置的新版比特幣。
(8)java實現以太坊p2p網路擴展閱讀:
虛擬貨幣是指非真實的貨幣。知名的虛擬貨幣如網路公司的網路幣、騰訊公司的Q幣,Q點、盛大公司的點券,新浪推出的微幣(用於微游戲、新浪讀書等),俠義元寶(用於俠義道游戲),紋銀(用於碧雪情天游戲)。
2013年流行的數字貨幣有,比特幣、萊特幣、無限幣、誇克幣、澤塔幣、燒烤幣、便士幣(外網)、隱形金條、紅幣、質數幣。目前全世界發行有上百種數字貨幣。圈內流行"比特金、萊特銀、無限銅、便士鋁「的傳說。
I. 用Java實現生成樹協議
快速生成樹協議(RSTP)STP並不是已經淘汰不用,實際上不少廠家目前還僅支持STP。STP的最大缺點就是他的收斂時間太長,對於現在網路要求靠可靠性來說,這是不允許的,快速生成樹的目的就是加快乙太網環路故障收斂的速度。1.RSTP 5種埠類型STP定義了4種不同的埠狀態,監聽(Listening),學習(Learning),阻斷(Blocking)和轉發(Forwarding),其埠狀態表現為在網路拓撲中埠狀態混合(阻斷或轉發),在拓撲中的角色(根埠、指定埠等等)。在操作上看,阻斷狀態和監聽狀態沒有區別,都是丟棄數據幀而且不學習MAC地址,在轉發狀態下,無法知道該埠是根埠還是指定埠。表8-20中看RSTP的埠狀態只有三種狀態,Discarding、Leaning和Forwarding。表8-20 STP和RSTP埠狀態比較RSTP有五種埠類型。根埠和指定埠這兩個角色在RSTP中被保留,阻斷埠分成備份和替換埠角色。生成樹演算法(STA)使用BPDU來決定埠的角色,埠類型也是通過比較埠中保存的BPDUB來確定哪個比其他的更優先。1)根埠非根橋收到最優的BPDU配置信息的埠為根埠,即到根橋開銷最小的埠,這點和STP一樣。請注意圖8-16上方的交換機,根橋沒有根埠。按照STP的選擇根埠的原則,SW-1和SW-2和根連接的埠為根埠。2)指定埠與STP一樣,每個乙太網網段段內必須有一個指定埠。假設SW-1的BID比SW-2 優先,而且SW-1的P1口埠ID比P2優先順序高,那麼P1為指定埠,如圖8-17所示。 圖8-16 RSTP根埠 圖8-17 指定埠的選擇3)替換埠如果一個埠收到另外一個網橋的更好的 BPDU,但不是最好的,那麼這個埠成為替換埠,如圖8-18所示。對於SW-2來說,埠P3收到的BPDU比自己優先,自己為次優先,P3為替換埠。4)備份埠如果一個埠收到同一個網橋的更好 BPDU,那麼這個埠成為備份端。當兩個埠被一個點到點鏈路的一個環路連在一起時,或者當一個交換機有兩個或多個到共享區域網段的連接時,一個備份埠才能存在。如圖8-19所示,SW-1的P1和P2口同時接入到乙太網的同一網段,P1為指定埠,P2 優先順序低,則P2埠為備份埠。 圖8-18 替換埠的選擇 圖8-19 備份埠的選擇5)禁用埠在快速生成樹協議應用的網路運行中不擔當任何角色。2.BPDU更新與變化RSTP添加標志位,如圖8-20所示。在STP中,標志位只有0為TC和7為TCA使用,RSTP使用其中保留的6位。另外,RSTP在BPDU指定了埠的角色和埠狀態,並且採用提議/同意的控制機制。 具體 參考 下 http://it.kswchina.com/skrz/zh/507188.html