标签: ethereum

如何强制事务在某个未来块#上执行?(以太坊,JS API)

我正在尝试发送一个事务并让它在某个块上执行.根据JS API,这似乎是可能的:

https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethsendtransaction

参见参数#2,除非我误解了它.

但每次我尝试这样做时,它都会失败并显示"无效地址":

incrementer.increment.sendTransaction({from:eth.coinbase}, 28410, function(err, address) {
  if (!err)
    console.log("no err " + address); 
  else
    console.log("err " + address); 
});
Run Code Online (Sandbox Code Playgroud)

...而删除块参数28410 ...

incrementer.increment.sendTransaction({from:eth.coinbase}, function(err, address) {
  if (!err)
    console.log("no err " + address); 
  else
    console.log("err " + address); 
});
Run Code Online (Sandbox Code Playgroud)

......成功就好了.

有谁知道这是怎么回事?我正在努力做甚么可能吗?

ethereum

2
推荐指数
1
解决办法
1325
查看次数

在以太坊,什么是私有测试网,为什么我需要它,以及如何设置它?

我看到/听过开发人员谈论以太坊测试网,但我刚刚发布到公共区块链.什么是私人测试网,如何设置?

ethereum

2
推荐指数
1
解决办法
2086
查看次数

Poloniex C#API - 获得交易

我在这里使用Poloniex C#API:Poloniex C#.

我已通过公钥/私钥组合连接到我的Poloniex帐户

private PoloniexClient client = new PoloniexClient(Properties.Resources.PublicKey, Properties.Resources.PrivateKey);
Run Code Online (Sandbox Code Playgroud)

我有一种获取交易信息的方法

public async void GetTrades(string curr1, string curr2)
{
   CurrencyPair cp = new CurrencyPair(curr1, curr2);
   var trades = await client.Markets.GetTradesAsync(cp);
   foreach (var x in trades)
       Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)

它使用API​​的GetTradesAsync()方法,但我得到的输出是

Jojatekok.PoloniexAPI.MarketTools.Trade

Jojatekok.PoloniexAPI.MarketTools.Trade

Jojatekok.PoloniexAPI.MarketTools.Trade

...

这是我第一次使用Poloniex(以及任何与加密货币相关的东西),所以我不确定实际结果应该是什么样子,但我确信我确实应该得到更有意义的东西.我很感激任何帮助或建议.

c# ethereum poloniex

2
推荐指数
1
解决办法
4408
查看次数

以太坊:无法打开数据库:资源暂时不可用

我正在开始使用以太坊并构建一个 Dapp(顺便说一下,这到底是什么意思?)。在应用程序的基本安装(https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor#connect-your-%C3%90app)时,我在尝试连接时收到此错误。

geth --rpc --rpccorsdomain "http://localhost:3000"
I0804 23:48:24.987448 ethdb/database.go:82] Alloted 128MB cache and 1024 file handles to /Users/( . )Y( . )/Library/Ethereum/chaindata
Fatal: Could not open database: resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

我刚刚开始,我通过自制软件设置了以太坊并在 geth 上注册了一个帐户。不能从这里过去。

谢谢!

meteor ethereum

2
推荐指数
1
解决办法
1472
查看次数

设置令牌价格稳固性

如何才能确定每个令牌的价格?

我试过了

contract OToken {

using SafeMath for uint256;

uint public _totalSupply = 0;
uint public constant _cap = 100000000;
string public constant symbol = "OXN";
string public constant name = "OToken";
uint public constant decimals = 18;

uint public oneTokenInWei = 183.602;
Run Code Online (Sandbox Code Playgroud)

如果我希望令牌价格为每个0.02美元,1个eth的交易价格为167美元,则1 wei = 183.602令牌

如果我想将每个令牌的价格更改为.03,我可以调用此函数

 function setOneTokenInWei(uint w) onlyOwner {
    oneTokenInWei = w;
    changed(msg.sender);
}
Run Code Online (Sandbox Code Playgroud)

然后这个函数来创建令牌

function createTokens() payable{

    require(
        msg.value > 0
        && _totalSupply < _cap
        && CROWDSALE_PAUSED <1
        );

        uint multiplier = 10 ** decimals; …
Run Code Online (Sandbox Code Playgroud)

ethereum solidity

2
推荐指数
1
解决办法
2907
查看次数

Solidity 返回函数为什么是常量?

我只是从坚固开始。我有一个这样的功能:

function get() constant returns (uint) {
    return storedData;
  }
Run Code Online (Sandbox Code Playgroud)

这里的constant关键字有什么用?我知道在这个键盘之后我们定义了返回类型但是为什么它前面需要常量?是否有替代方案,例如var

ethereum solidity

2
推荐指数
1
解决办法
3159
查看次数

运行公共以太坊节点是否安全?

我正在用松露创造我的第一个以太坊合约.我希望Web应用程序可以在没有MetaMask的情况下使用,所以我想知道运行我自己的私有节点并从这样的前端连接是否是个好主意:

this.web3 = new Web3(new Web3.providers.HttpProvider('http://my-public-ip:8545'));
Run Code Online (Sandbox Code Playgroud)

这种方法有安全隐患吗?

security ethereum truffle web3-donotuse metamask

2
推荐指数
1
解决办法
1030
查看次数

只读函数迭代成本

我正在为一些用例开发智能合约,目前我正在努力优化智能合约.我对Hitchiker指南中有趣的东西感到困惑.在第4节中,迭代合同代码

// returns true if proof is stored
// *read-only function*
function hasProof(bytes32 proof) constant returns (bool) {
for (uint256 i = 0; i < proofs.length; i++) {
    if (proofs[i] == proof) {
        return true;
    }
}
return false;
}
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,他表示"请注意,每次我们要检查文档是否经过公证时,我们都需要遍历所有现有的证据.这使得合同在每次检查时花费越来越多的气体,因为添加了更多文档. "

毫无疑问,实现它的正确方法是使用映射而不是数组结构.这一点让我感到困惑.它是只读函数,它不是影响区块链的事务.当我观察我的netstats时,调用此函数时它不显示任何事务(实际上,这是我在调用此函数之前所期望的).

我不认为他误解了这个机制,有人可以清楚我对这个评论的看法吗?

ethereum solidity

2
推荐指数
1
解决办法
749
查看次数

是否可以在genesis.json中预定义智能合约?

我遇到了与此问题完全相同的问题https://ethereum.stackexchange.com/questions/7707/is-it-possible-to-preload-contracts-in-the-genesis-block?rq=1

Agian,是否可以通过分配alloc - > code字段来预定义合约,

在此输入图像描述

但是,似乎无论我调用的合约中的哪个方法,无论此方法的逻辑和内容如何,​​它总是返回合同本身的字节码.

在此输入图像描述

这可能是我部署合同的原因:

在此输入图像描述

当我调用test()时,获取:

在此输入图像描述 这不是一个字符串.

当我调用test2()时,获取:

在此输入图像描述 这是一个非常大的数字.

当我调用test3(1)时,获取false,这不是1 == 1.

我已经浏览了相关的主题,发现了这个,https://ethereum.stackexchange.com/questions/30366/how-does-the-genesis-json-file-define-the-initial-state-of-the -blockchain

看起来存储设置是必要的但我完全不知道我应该写什么键/值.

那我怎么处理这个案子呢?

blockchain ethereum solidity smartcontracts go-ethereum

2
推荐指数
1
解决办法
323
查看次数

web3 getAccounts无法解析

web3.eth.getAccounts()对我不起作用.下面的代码显示执行时的"错误"(被拒绝).我使用的是web3 1.0.0 beta-46.我正在学习Stephen Grider的教程视频并使用beta-26,是版本相关的问题还是我做错了什么?

const assert = require('assert');
const ganache = require('ganache-cli');
const Web3 = require('web3');
const web3 = new Web3(ganache.provider());

web3.eth.getAccounts()
    .then(fetchedAccounts => {
      console.log(fetchedAccounts);
    },() => {
      console.log("error");
    });
Run Code Online (Sandbox Code Playgroud)

ethereum solidity web3js web3-donotuse

2
推荐指数
1
解决办法
65
查看次数