2017-08-04 92 views
0

我剛纔聲明和Ethereum一起工作,所以也許我的問題聽起來不那麼聰明,但是有沒有從Ethereum合同中調用C++代碼的方法?從以太坊合約合約中運行C++腳本

比如我可以調用C++從PHP像that

exec("/path/to/your/binary $var1 $var2", $output); 

是否有類似的機制?

+0

你不能直接運行C++代碼,它必須在編譯之前。 – user0042

+0

@ user0042是的,我明白了。你知道該怎麼做嗎?我的意思是代碼的外觀如何?它有可能嗎? – Maria

+0

我承認並不知道Euthereum,但是代碼不需要在(分佈式)Euthereum虛擬機上運行? C++必須被編譯爲相同的目標字節碼,不是嗎? – Cameron

回答

1

您使用Solidity編碼的智能合約以EVM(以太坊虛擬機)的機器語言代碼進行編譯。這個字節碼被注入到區塊鏈中,並且您可以通過交易/通話與其交互。 EVM內部發生的一切無法訪問EVM之外發生的情況。

您不能在區塊鏈內推送另一種語言代碼並期望它可以正常工作。如果你想達到這個目標,你必須編寫軟件,這個軟件將在C++代碼和你在區塊鏈上的智能合約之間架起一座橋樑。但請記住,只要您無法向區塊鏈的其餘部分證明您的C++程序所取得的成果,您智能合約中的信息將毫無價值。關於EVM的有趣之處在於每一個行動都在Blockchain上進行,每個人都可以看到發生了什麼。

但這一切都取決於你想要實現或建立!

+0

非常感謝您的詳細解答!是的,我真的需要調用C++庫,並需要在C++代碼和智能合約之間搭建橋樑。如果你能給我一些例子的鏈接,我將非常感激。但是,無論如何=) – Maria

+1

使用geth(go-ethereum)連接到區塊鏈。然後搜索連接geth並與節點通信的C++庫,以便能夠直接從您的C++代碼與Blockchain進行交互。 –

+1

@lulian Rotaru Thanx!將檢查它。祝你今天愉快! – Maria