10 ms·
BitPay introduces Bitcore
- kolev 13y agoThey also have a blockchain explorer using Bitcore with AngularJS: http://insight.bitcore.io/ http://insight.bitcore.io/
- utnick 13y agoThe Readme says insight requires a running bitcoind to communicate to over RPC, does bitcore require the same? or is bitcore like a reimplementation of bitcoind?
- martindale 13y agoBitcore does not require bitcoind, only Insight.
- gojomo 13y agoIt'd be very nice if Insight offered workalikes for some/all of the Blockchain.info APIs.
- christiangenco 13y agoDoes it do anything more than validate addresses?
- martindale 13y agoAbsolutely. Most of what the Bitcoin reference client supports is possible, including the signing and transmitting of transactions. Multiple signature transactions are also supported, something that the reference client does not yet include.
- kolev 13y agoYes, but examples and documentation are lacking.
- martindale 13y agoDocumentation incoming.
- martindale 13y agoEric from BitPay here! Happy to answer any questions.
- ctide 13y agoWhat's the plan for supporting altcoins, or is there one?
- martindale 13y agoBitPay is focused on Bitcoin, but Bitcore itself is agnostic as to which blockchain is utilized. We'll gladly review pull requests increasing the utility of this as a tool for cryptofinance in general.
- deleted 13y ago[deleted]
- bendoernberg 13y agoWould like to see Dogecoin compatibility
- ceejayoz 13y agoCan you add a GPG public key to the security section?
- martindale 13y agoWe can, do you want us to sign our releases with it?
- jnbiche 13y agoYes, please! That would be great. Personally, I don't download or use anything with Bitcoin that isn't signed by a reputable party, or else I audit the entire codebase.
- 13y ago
- quellhorst 13y agoWhere are the docs at?
- rakoo 13y agoI find it strange to use try/catch to validate an address. I'd expect the validate function to return true/false. Is there more doc ? This could be interesting.
- Guvante 13y agoIt looks like the intended use is to simply call validate and ignore the result, allowing you to assume from then on it is a valid address. In theory they should provide a "TryValidate" or similar but it doesn't look like they do at the moment.
- stith 13y agoI find that really strange as well. I haven't seen a Node library that uses exceptions for flow control before this, I wonder why they decided to start here.
- nbody 13y agoAny plans for support on other cryptocurrencies?
- untilHellbanned 13y agoDOGE please!
- pera 13y agoSorry I don't understand what is this... is it a bitcoin client for node?
- jonpaul 13y agoShameless plug: https://github.com/cryptocoinjs https://github.com/cryptocoinjs (Bitcoin JavaScript fork of the original BitcoinJS) Right now, we're focused on Bitcoin, but we're moving fast and will be expanding support for altcoins. Also, if you're interested in the intricacies of addresses and Bitcoin, I'd encourage to read a very detailed article that I wrote on Bitcoin Addresses and JavaScript: http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript http://procbits.com/2013/08/27/generating-a-bitcoin-address-... Doesn't use CryptoCoinJS yet as the article was written before I started CryptoCoinJS.
- urethra 13y agoPlease support Dogecoin.
- saym 13y agoSeconding this post, because votes are mostly anonymous and you can't see I upvoted his/her comment.
- arasmussen 13y agoWhat do you mean votes are "mostly" anonymous?
- kylebrown 13y agoI was actually experimenting yesterday with cryptocoinjs on dogecoin. It works with very few changes, if you find and change a few options/constants among the various modules (mainly btc-p2p and p2p-node), eg by modifying the installed packages in your ~/node_modules directory. The port needs to be 22556, the DNS seed to seed.dogecoin.com, and the "magic bytes" to 0xC0C0C0C0. There's an example of using getData on the transaction hashes inside "inv" (inventory) messages. it works, but you get hex public keys. So remember to use version bytes of 30 (decimal integer) to a base58check encoding function, to get the dogecoin addresses that begin with "D". Well, at least the output addresses are easy enough. I'm still having trouble parsing the input addresses. [edit] here's the getData example: https://github.com/cryptocoinjs/btc-p2p/blob/master/examples/app.js#L34-L43 https://github.com/cryptocoinjs/btc-p2p/blob/master/examples...
- jbaudanza 13y agoThis is great. It looks like there is already functionality to connect to peers and send and receive transactions. Is there any functionality to store and query the blockchain as well?
- nly 13y ago> Bitcore is a complete, native interface to the Bitcoin network Javascript: the new native.
- teacup50 13y agoIf there was a list of a use cases for typed, "safer" languages, crypto-currency would be near the top of the list. I can't think of any technical, risk-related, or financial justification for implementing a core piece of crypto-currency infrastructure in Javascript, on Node. It seems fairly clear that while Bitcoin itself may be a very well designed crypto protocol, the people doing the implementation are woefully underqualified.
- aaron-lebo 13y agoI think part of the reason you might see some bugs in the Bitcoin code is because it is C++ code managing low level things like memory and threading. You don't get static typing with nodejs, but you can probably simplify the implementation somewhat by not dealing with low level details and therefore actually get some safety. But aside form that justification there is also the fact that a lot of people won't touch C++ and a code base like this allows a lot more developers to read and understand the protocol. I guess the ideal implementation would be a modern statically typed language like Rust, Go, or Haskell.
- oscargrouch 13y agoC++ is not for scared kids.. C++ is the katana of programming languages: powerful, but you must know how to use it to avoid cut yourself.. and i think the bitcoin core in c++ is being implemented in other softwares as well.. and im pretty sure that this is happening BECAUSE it was created in C++ (only C could also be a fit here) So kudos to Satoshi whoever he is for this..
- nkrba 13y agoI think they mean that it does not depend on bitcoind.
- robbles 13y agoQuick note to anyone looking to build bitcoin-based apps - although something like this is probably useful for some applications, you don't actually need a complicated bitcoin client library to interface with the blockchain. The bitcoin daemon, bitcoind, handles the protocol for you and can run as a headless server. It has a simple JSON-RPC protocol that you can use to create wallets, send and receive transactions, etc. You could write your own client for it in any language quite easily, and for most languages, there's an OS implementation already. https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls... In fact, I'd argue that running a cluster of bitcoind servers is probably a better approach, due to separation of concerns. Also, I'd guess that the C++-based and widely used bitcoind is probably faster and more stable than this node-based implementation. Not to knock this project - it's just going to difficult to compete.
- kordless 13y agoDo you suggest putting a proxy in front of a few of them and how stable is it?
- deleted 13y ago[deleted]
- aaron-lebo 13y agoYes but with the caveat that what you can do is limited. The bitcoind rpc interface exposes blockchain information about your local wallet and addresses you own only. So it is great for that. However, let's say you wanted to do something like have the user input their bitcoin address into an input and you returned the balance or a history of transactions from that address. You couldn't actually do that unless you also got and imported the user's private key (effectively giving you control of it). blockchain.info and similar services use custom code to do that stuff.
- kylebrown 13y agoThe node/js implementations provide a stream interface to bitcoin, for watching transactions live and doing real-time updates. Its very difficult to do that with the bitcoind API because it is only polling functions. Whereas push/event-based handlers and filters are natural on a node implementation (eg watch all new transactions for a particular bitcoin address, how to do that using bitcoind, without long polling?).
- presorted 13y agoAm I paranoid thinking it crazy to use an untyped, interpreted language for financial apps?
- lutusp 13y agoThat depends. If the software is fully understood by its creators, and if it has been thoroughly tested, there's no reason to doubt its reliability. Consider that, in strongly types languages, things go wrong anyway. Once an officer aboard a U.S. Navy capital ship entered a zero into a program, the zero caused a divide-by-zero error, and the error propagated through the ship's network and disabled the entire system. The ship had to be towed back to port. So much for strong typing. http://en.wikipedia.org/wiki/USS_Yorktown_(CG-48)#Smart_ship_testbed http://en.wikipedia.org/wiki/USS_Yorktown_(CG-48)#Smart_ship... Quote: "On 21 September 1997, while on maneuvers off the coast of Cape Charles, Virginia, a crew member entered a zero into a database field causing an attempted division by zero in the ship's Remote Data Base Manager, resulting in a buffer overflow which brought down all the machines on the network, causing the ship's propulsion system to fail."
- teacup50 13y ago> That depends. If the software is fully understood by its creators, and if it has been thoroughly tested, there's no reason to doubt its reliability. How did you arrive at that conclusion? How, exactly, is it "fully understood by its creators"? How do you know that it's "thoroughly tested"? Type systems allow one to assert these ideas declaratively and provably, and depending on the type system, more or less of the design can be asserted. > Consider that, in strongly types languages, things go wrong anyway ... That's not an argument against strong typing, that's an argument against your understanding of type systems. On top of which, you've deployed an illogical assertion: that because things anecdotally CAN go wrong with what you presume was a type-safe language, the failure rate is EQUIVALENT to a non-typesafe language. That doesn't make any sense.
- lutusp 13y ago> How, exactly, is it "fully understood by its creators"? How do you know that it's "thoroughly tested"? Here's what I said: "If the software is fully understood by its creators, and if it has been thoroughly tested, there's no reason to doubt its reliability." Read it again. Note the word "if" repeated twice. > On top of which, you've deployed an illogical assertion: that because things anecdotally CAN go wrong with what you presume was a type-safe language, the failure rate is EQUIVALENT to a non-typesafe language. As is often the case in Internet debates, you have invented a position I have never taken to argue with (a "straw man"). I don't have to defend a position I've never taken. > That doesn't make any sense. So? It's your opinion, not mine. You defend it. > That's not an argument against strong typing, that's an argument against your understanding of type systems. "My understanding?" Was I present on the Navy capital ship that lost its way after a zero was entered into a strongly typed software system? Did I write the code? No to both. I understand typed systems perfectly well, and they're sometimes helpful in avoiding problems. But the reliability difference between typed and untyped schemes is overrated.
- barkingcat 13y agoprediction: 5 min later, announces that Bitcore has a security exploit. All coins stolen from all projects that uses it.
- dmix 13y ago"Security Please use at your own risk." So you predicted what their documentation says on the homepage?
- Kiro 13y agoWould this be something to use if I want to build a Bitcoin casino?