Bitcoin Forum
May 30, 2024, 09:14:13 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18]
341  Bitcoin / Bitcoin Discussion / uc_bitcoin: A Bitcoin payment method for Ubercart/Drupal on: November 24, 2010, 08:47:06 PM
First release of a Bitcoin payment method module for the Ubercart shopping cart for Drupal

Github repository: https://github.com/mikegogulski/uc_bitcoin
Support and module download: http://www.nostate.com/3955/uc_bitcoin-a-bitcoin-payment-method-for-ubercartdrupal/

Feedback welcome!

The README file:

uc_bitcoin

A Bitcoin payment method for the Ubercart shopping cart for Drupal.

Version: 0.9.0
Features

    * Generates a new bitcoin address for every order
    * Provides payment address to customer on site at checkout, plus in a subsequent email
    * Configurable timeout after which unpaid transactions will be canceled automatically
    * Configurable number of Bitcoin network confirmations after which an order is considered paid
    * HTTP or HTTPS access to bitcoind

Requirements
Base requirements

    * Ubercart 2.x
    * Drupal 6.x

PHP requirements:

    * PHP5
    * cURL support
    * SSL support (if you're using HTTPS to talk to bitcoind)

Limitations

    * It is assumed that Bitcoin is the only currency accepted.
    * All prices are assumed to be in Bitcoins, and no currency conversions are performed.
    * Checks for payment receipt are performed via Drupal cron, at least until bitcoind allows attaching a JSON-RPC callback to an address.
    * Orders for downloadables are not tagged as "shipped" once paid.
    * No localization support.

Installation

    * Install Drupal 6 http://drupal.org/documentation/install.
    * Install Ubercart 2 http://www.ubercart.org/docs/user/8075/installing_ubercart.
    * Transfer the contents of the distribution archives to the modules/ directory of your Drupal installation.

Configuration

    * Log into your Drupal installation as an administrator.
    * Navigate to Administer->Site building->Modules and enable the Bitcoin module
    * Navigate to Administer->Store administration->Configuration->Payment settings
    * Click "Edit" at top, then "Payment methods"
    * Enable the Bitcoin payment method and disable all others
    * Expand the "Bitcoin settings" dropdown and proceed as follows:
          o Configure your bitcoind server information.
          o If you are using HTTPS to talk to bitcoind and would like to validate the connection using bitcoind's own SSL certificate, enter the absolute path to the certificate file (server.cert) you've uploaded to the server.
          o Configure your payment timeout and number of transaction confirmations required.
          o Save configuration.
    * Navigate to Administer->Store administration->Configuration->Store settings
    * Clik "Edit", then "Format settings"
    * Expand the "Currency format" dropdown
    * Set "Default currency" and "Currency sign" to "BTC"
    * Save configuration

Donate

    * Bitcoin payments: 1DDuMEPaQzdH3vLTiQwQvACgnv7tR25SpE
    * Gifts via other methods: http://www.nostate.com/support-nostatecom/

Authors

    * Mike Gogulski - http://www.nostate.com/ http://www.gogulski.com/

Credits

uc_bitcoin incorporates code from:

    * XML-RPC for PHP by Edd Dumbill (for JSON-RPC support)
    * bitcoin-php by Mike Gogulski (Bitcoin support library)

License

uc_bitcoin is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.
342  Economy / Marketplace / Re: Auction for a 1g gold mini bar until block number 95,000 on: November 24, 2010, 12:27:26 AM
BTC 150.00
343  Bitcoin / Development & Technical Discussion / Bitcoin library for PHP (alpha release) on: November 23, 2010, 08:12:12 PM
https://github.com/mikegogulski/bitcoin-php

(untested) Drupal usage example:
Code:
  include_once("bitcoin.inc");
  $bitcoin_client = new BitcoinClient($scheme, $username, $password, $hostname, $port, $certificate_path, $debuglevel);
  if (TRUE !== ($fault = $bitcoin_client->can_connect()))
    return watchdog('uc_bitcoin_cron', 'Unable to access Bitcoin server. Fault: !fault', $fault);
  // loop through the open transactions
  while ($my_order = db_fetch_object($result)) {
    // check for transaction completion
    $address = $my_order->bitcoin_address;
    try {
      $paid = $bitcoin_client->query("getreceivedbyaddress", $address, variable_get("uc_bitcoin_transaction_confirms", 1));
    } catch (BitcoinClientException $e) {
      return watchdog('uc_bitcoin', "Bitcoin server communication failed on getreceivedbyaddress !address with fault string !fault", array("!address" => $address, '!fault' => $e . message), WATCHDOG_ALERT);
    }

  • Abstracts away the underlying JSON-RPC interface
  • Incorporates theymos's ports of the address and hash handling functions
  • Includes unit tests

Forks welcome!
344  Bitcoin / Development & Technical Discussion / Re: determine valid bitcoin address on: November 23, 2010, 06:29:34 AM
This topic contains an explanation of why is undesirable to use such functions:
https://www.bitcoin.org/smf/index.php?topic=1267.msg13897

As theymos writes, versioning can be taken care of with a check.

Additionally, I want verification of an address's validity external to the bitcoind I'm talking to because I do not want to hand bogus addresses generated by a malfunctioning or impostor bitcoind over to customers as payment addresses. And, since I'm not talking to it with a regular bitcoin client, I can't use those functions.
345  Bitcoin / Bitcoin Discussion / Re: Why Are You Sold On Bitcoins? on: November 22, 2010, 02:55:24 AM
@RHorning: The discussion you point to is very interesting. I am not at all certain I understand all of it. My related reservation is around latency. If a meatspace vendor is going to sell me something for BTC, right now they face a confirmation latency on the order of 10-20 minutes if they require at least one confirmation in the subsequent block. If they require zero confirmations it's 0-10 minutes. When I walk into a store and buy a pack of cigarettes, the equivalent "confirmation" comes by the clerk (cursorily) examining my banknotes and coins, and reaching an instant genuine/counterfeit decision. I wouldn't tolerate a 0-10 minute wait to get my fix, let alone a 10-20 minute wait. At the same time, maybe I'd *like* to adapt to a better system, so who knows. (Yes, I'm probably late to the game and this has already been addressed someplace)

@sgornick: You can bet your ass the moment I hear of someone else initiating another Bitcoin system based on a new genesis block that I'm going to start mining that one, too. Fork, baby, fork!

@em3rg3ntOrder: Aw schucks, ya know me already? Smiley Thanks for the contrib Smiley And you're right of course in your qualifications. What I've been breathlessly anticipating, though, is the moment of realization that Bitcoin or a system very much like it definitely will out-compete, displace and render obsolete fiat paper. I'd love to be sold on that point.



346  Bitcoin / Development & Technical Discussion / Re: determine valid bitcoin address on: November 22, 2010, 02:35:49 AM
Thanks for this, but checkAddress() appears to be broken for some addresses:

Those are all correct.

Quote
1MU97wyf7msCVdaapneW2dW1uXP7oEQsFA  bool(false) ** Actually valid **

I just tested this and checkAddress() returned true. Maybe you had some spaces or something: it does no "cleanup" at all.

Okay, now I feel like a jackass. Somehow a space snuck itself in to the end of that string.

Sorry. Thanks for the function! I'm going to incorporate it into what I'm doing.

Peace,
Mike
347  Bitcoin / Development & Technical Discussion / Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme on: November 22, 2010, 02:31:47 AM
Friends,

As discussed at http://bitcointalk.org/index.php?topic=55.msg23464#msg23464, Bitcoin needs a URI scheme.

<PROPOSAL:>

I propose that Bitcoin's URI scheme be "bitcoin". I also propose that this matter be left open through the end of 2010 for comments and discussion.

</PROPOSAL>

Background:

A "URI scheme" is an extremely simple thing. RFC 3986 (http://tools.ietf.org/html/rfc3986#page-17) defines a URI Scheme in ABNF as

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

IANA maintains the official registry of (officially registered) URI schemes. The current list is at http://www.iana.org/assignments/uri-schemes.html.

BCP35 (http://tools.ietf.org/html/bcp35) lays out the criteria and process for officially registering a URI scheme with IANA. I'll cheer the day when that happens. Meanwhile, looking at the IANA registry of current official URI schemes (http://www.iana.org/assignments/uri-schemes.html) immediately shows that there are many familiar ones in widespread use that are not "officially registered", such as magnet:, ed2k: skype:, callto:, aim:, freenet: and so on.
348  Bitcoin / Development & Technical Discussion / Re: URI-scheme for bitcoin on: November 22, 2010, 02:24:59 AM
Friends,

I agree most emphatically that a URI scheme for bitcoin is necessary and desirable.

That said, one of the most important things on the topic was presented by karmicads above in including a diagram entitled "components of a URI".

A "URI scheme" is an extremely simple thing. RFC 3986 (http://tools.ietf.org/html/rfc3986#page-17) defines a URI Scheme in ABNF as

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

IANA maintains the official registry of (officially registered) URI schemes. The current list is at http://www.iana.org/assignments/uri-schemes.html. One will note that, for example, neither magnet nor freenet appear, despite their rather widespread deployment. Likewise skype:, callto:, aim:, and so on.

So, when we are talking about a URI scheme for Bitcoin, please forget about anything that might come after a colon, a slash, a question mark, an ampersand or a semicolon!

I've seen three concrete proposals for a Bitcoin URI scheme on this thread:

  • bitcoin
  • btc
  • x-btc

Personally, I think that "bitcoin" is the only appropriate option. We could, on this forum, agree right now that "bitcoin" will be Bitcoin's URI scheme, promulgate that fact and begin using it. I will create a specific thread for comments on this proposal right after I post this message.

At the point when someone can persuasively make the case in a formal application against the criteria set out in BCP35 (http://tools.ietf.org/html/bcp35), that URI scheme can become officially registered.

With regards to the term "URI scheme", remember: everything after the colon is irrelevant!

Now I've stepped in it for sure. Certainly there are very important details remaining regarding how URIs utilizing the bitcoin: URI scheme would be implemented (see theymos above) and how the decisions regarding those details would be made.

Based on this, and at the risk of being overly pedantic, I respond to Satoshi above: anything starting with http: can't be a Bitcoin URI. What you're getting at there, rather, is a URI format intended to be used as a template for communicating with a local Bitcoin server over the HTTP protocol. It would seem that most of the capability described there has been implemented via the JSON-RPC interface, though via POST rather than a GET.

PS: Datawraith's comment about a Bitcoin URI being more like a mailto URI seems right to me.
PPS: Piggybacking on magnet: seems wrong to me.
PPPS: @melvster: RDF gives me a boner. More?
349  Bitcoin / Bitcoin Discussion / Re: bitcoin-ubercart-drupal is coming on: November 22, 2010, 01:09:29 AM
I'd welcome a project outside the PHP world, though. Been pondering Satchmo/Django/Python and Broadleaf/Java. Anyone got things to say about those?

Ever tried Ruby on Rails ?
Honestly I don't know your other options, but Rails amazes me every day, also Ruby is a really really nice language.

I haven't used Ruby at all yet, but I'd have no trouble picking it up. Only thing is, I know Rails is fairly popular, but what's the e-commerce killer app that sits on top of it?
350  Bitcoin / Bitcoin Discussion / Re: Why Are You Sold On Bitcoins? on: November 21, 2010, 06:13:29 PM
Bitcoin is the perfect agorist currency.

I lean the same way, though this is far from proven. Some limitations I can think of:

  • A substantial majority of humans lack computers and/or internet access.
  • Bitcoin might be out-competed by something else in the works (Truledger, Loom)
  • Bitcoin might be out-competed by something not yet invented
  • The entire model might be flawed
  • Space aliens could destroy the intertube
  • etc...
351  Bitcoin / Development & Technical Discussion / Re: determine valid bitcoin address on: November 21, 2010, 05:19:18 PM
Here's my PHP version:
http://pastebin.com/vmRQC7ha

Thanks for this, but checkAddress() appears to be broken for some addresses:

1F417eczAAbh41V4oLGNf3DqXLY72hsM73 bool(true)
12uJ8qf82vbD76JYxSC38wqXo6QpPdRWbh bool(true)
1F417eczAAbh41V4oLGNf3DqXLY72hsM7 bool(false)
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD bool(true)
17NdbrSGoUotzeGCcMMCqnFkEvLymoou9j bool(true)
1MU97wyf7msCVdaapneW2dW1uXP7oEQsFA  bool(false) ** Actually valid ** Edit: I'm a dumbass, nevermind.
1N3QX79szMKAJm35NLRSfSpD9DmpQTbNLR bool(true)
1Jcbeg2VjLLJrVztBrsk2UgyEDeLPfk5Q bool(true)
1F417eczAAbh41V4oLGNf3DqXLY72hsM73 bool(true)
F417eczAAbh41V4oLGNf3DqXLY72hsM73 bool(false)
1417eczAAbh41V4oLGNf3DqXLY72hsM73 bool(false)
1F17eczAAbh41V4oLGNf3DqXLY72hsM73 bool(false)
1F4AAbh41V4oLGNf3DqXLY72hsM73 bool(false)
1F417eczAAbDqXLY72hsM73 bool(false)
1F417eczAAbh0000 bool(false)
1F417eczAAbhNf3DqXL72hsM73 bool(false)

[Edit:] This refers to the PHP version
352  Bitcoin / Development & Technical Discussion / Re: Feature request: Moar RPC! on: November 21, 2010, 01:55:23 PM
Thanks, witchspace. I agree too that XMLRPC is a bloated monster. However, I've been working with the big 3 FOSS CMS systems this past couple of weeks and, looking at what comes bundled with them, find:

WordPress: xmlrpc, no jsonrpc
Drupal: xmlrpc, no jsonrpc
Joomla!: xmlrpc, no jsonrpc

This isn't a huge deal since there's a very functional PHP library available (http://phpxmlrpc.sourceforge.net/) which supports JSON-RPC as both client and server.

The request for that feature boils down to "follow what's popular rather than what's better, in order to drive adoption". I really should have made it #2 since the callback capabilities are far more important.
353  Bitcoin / Development & Technical Discussion / Feature request: Moar RPC! on: November 21, 2010, 01:04:54 PM
A couple of feature requests generated in the course of writing two Bitcoin payment gateways (for VirtueMart/Joomla! and Ubercart/Drupal):

1: Expand RPC capability to support XML-RPC as well as JSON-RPC (XML-RPC has wider language support from what I've seen).

2: Allow extra parameters to be attached to an address at creation and modified later:
  • $uri: JSON/XML-RPC callback URI
  • $total: Transaction total in BTC
  • $timeout: Transaction expiration interval (sec)
  • $minconf: Transaction minimum confirmations required
  • $cert: PEM certificate for callback target server

Additional options passed in should also cover these use cases:

Fire $uri, including parameters for the current balance and the most recent payment received, when:
  • Any payment is received to the address with $minconf confirmations.
  • Balance on address >= $total with $minconf confirmations.
  • $timeout expires without balance on address >= $total and without at least $minconf confirmations.

With this, bitcoind is ready to become a fully-fledged payment back-end for internet commerce.
354  Bitcoin / Bitcoin Discussion / Re: bitcoin-ubercart-drupal is coming on: November 21, 2010, 11:55:16 AM
@Bimmerhead: Thanks. The full report (which you have to go to their site and fill in a form with bogus data to download) was somewhat helpful.

@Jgarzik: W00t! Thank you Smiley

Looking at the lists I think I just identified another couple of niches that can be served easily by Bitcoin: membership sites and pay-per-article sites. "Join now! BTC 10.00" or "Send BTC 10.00 to access this content".

Meanwhile on shops I should probably go revisit WordPress simply because it has immense market share. My first stab at at Bitcoin payment system was a plugin to wp-e-commerce, but I ran into a wall where I decided it couldn't be done without hacking that plugin's core. But there are a couple other cart frameworks for WP to look at, too.

WordPress, at least, has a decent architecture and API from the developer perspective. I haven't even really seen Joomla's API in the course of writing that plugin, since I had to talk almost exclusively to VirtueMart (itself a bit of a nightmare, really). Drupal's API is slick and functional but based on a whack-ass model owing to its origins in the non-OO PHP4 days.

I'd welcome a project outside the PHP world, though. Been pondering Satchmo/Django/Python and Broadleaf/Java. Anyone got things to say about those?
355  Bitcoin / Bitcoin Discussion / Re: Why Are You Sold On Bitcoins? on: November 20, 2010, 11:37:01 PM
Lack of centralized (government) control and fixed supply.
I think that if bitcoin becomes widely adopted, it will severely mitigate the ability of government to raise revenue by force (tax and inflation). This will shrink the size of government and make it more accountable.

No dependance on 3rd party for transactions.
Bitcoin gives us a way out of the parasitic banking system and limits the ability of the government to monitor/audit our economic activity. This means it will be very difficult to regulate much of the economy leading to freer markets and therefore, greater economic growth. Taking away the power of the government to manipulate markets kills the incentive for corporate-government partnerships.

Bitcoin is nothing short of revolutionary.

+1.5 (minus half a point for missing that it will make government impossible if it out-competes the central-banking/fiat-currency monster)
356  Bitcoin / Bitcoin Discussion / Re: bitcoin-ubercart-drupal is coming on: November 20, 2010, 11:08:57 PM
Hey Mike!

  Nice to see you drop in.

Shane

Nice to be here Smiley

Anyone have a list of the most popular FOSS shopping cart systems?
357  Bitcoin / Bitcoin Discussion / bitcoin-ubercart-drupal is coming on: November 20, 2010, 10:28:00 PM
I need to do some documentation work, testing and tidying before a release, but the basics are working:

https://github.com/mikegogulski/uc_bitcoin

Big thanks to the donors who have sent a total of BTC 154.05 in 4 separate donations. You folks rock!
358  Bitcoin / Bitcoin Discussion / Re: bitcoin-virtuemart-joomla payment gateway on: November 19, 2010, 03:12:35 AM
You're that stateless person!

Yesh I haz a videoz and stufff Smiley
359  Bitcoin / Bitcoin Discussion / Re: bitcoin-virtuemart-joomla payment gateway on: November 19, 2010, 02:45:13 AM
I haven't installed it yet but just wanted to say 'thanks'.  This is a fantastic extension for Joomla, and for bitcoin.  Great idea, thank you for doing it.

Thanks, and you're welcome. Beware the beta code, however! I'd be thrilled to hear back from you with real-world results, whether they be a working shop with customers or even "Ack! It doesn't work!" Smiley
360  Bitcoin / Bitcoin Discussion / bitcoin-virtuemart-joomla payment gateway on: November 19, 2010, 02:03:29 AM
First release of a Bitcoin payment processor plugin to the VirtueMart shopping cart for Joomla!

Get it at github: https://github.com/mikegogulski/bitcoin-virtuemart
Support: http://www.nostate.com/3941/bitcoin-payment-processor-for-virtuemartjoomla/

Feedback welcome.


The README file:

bitcoin-virtuemart

A Bitcoin payment processor plugin for the VirtueMart shopping cart for Joomla!.

Version: 0.9.0
Features

    * Generates a new bitcoin address for every order
    * Provides payment address to customer on site at checkout, plus in a subsequent email
    * Configurable timeout after which unpaid transactions will be canceled automatically
    * Configurable number of Bitcoin network confirmations after which an order is considered paid
    * HTTP or HTTPS access to bitcoind

Requirements
Base requirements

    * Joomla! 1.5
    * VirtueMart 1.1.x

PHP requirements:

    * PHP5
    * cURL support
    * SSL support (if you're using HTTPS to talk to bitcoind)

Other requirements:

    * Access to create a cronjob on your web server (or elsewhere)
    * wget or the curl commandline tool on the machine running the cronjob

Limitations

    * It is assumed that Bitcoin is the only currency accepted.
    * All prices are assumed to be in Bitcoins, and no currency conversions are performed.
    * A cronjob is required to check for payment receipt, at least until bitcoind allows attaching a JSON-RPC callback to an address.
    * Emailing the bitcoin address requires an extra email to be sent (modifying the order confirmation message VirtueMart sends would be preferable, but the API doesn't support that).
    * Validation of bitcoind's generated address is based only on its length. The PHP solution available requires the GMP extension to be installed.
    * Orders for downloadables are not tagged as "shipped" once paid.
    * The Bitcoin address associated with a transaction is stored in a database field not intended for it.
    * No localization support.

Installation

    * Install Joomla! http://help.joomla.org/content/category/15/99/132/.
    * Install VirtueMart (a PDF file included in the distribution explains the process).
    * Untar the distribution archive in your Joomla! installation's base directory.

Configuration

    * Log into your Joomla! installation as an administrator.
    * Click Components -> VirtueMart on the main menu.
    * At left, click Store -> List Payment Methods.
    * Click Bitcoin in the list.
    * Click the checkbox next to "Name" at the top of the list, then clear the Bitcoin checkbox.
    * Click "Unpublish" at top.
    * On the "Payment Method Form" tab, configure as follows:
          o Active - checked
          o Payment Method Name - Bitcoin
          o Code - BC
          o Payment class name - ps_bitcoin
          o Payment method type - HTML-Form based (e.g. PayPal)
    * Now click to the "Configuration" tab and proceed as follows:
          o Configure your bitcoind server information.
          o If you are using HTTPS to talk to bitcoind and would like to validate the connection using bitcoind's own SSL certificate, enter the absolute path to the certificate file (server.cert) you've uploaded to the server.
          o Configure your payment timeout and number of transaction confirmations required.
          o Note the instruction to create a cronjob. The cronjob is what queries bitcoind periodically to see if pending orders have been paid. The cronjob is mandatory.
          o Leave the "Order status" options at their defaults:
                + Successful = Confirmed
                + Uncompleted = Pending
                + Failed = Cancelled
          o Copy and paste all of the code from extrainfo.php in the distribution archive's root directory into the "Payment Extra Info" box.
          o Save.
    * Create the Bitcoin currency:
          o Assuming you're still in the VirtueMart component, click Admin -> List Currencies at left.
          o Click New at top right.
          o Enter:
                + Currency name: Bitcoin
                + Currency code: BTC
          o Save.
    * Set the store-wide currency:
          o Click Store -> Edit Store
          o In the "Currency Display Style" box:
                + Open "Currency" and select Bitcoin.
                + Enter "BTC" as the Currency Symbol.
                + Under "List of accepted currencies" click Bitcoin and make sure that all other currencies are deselected.
          o Save.

Donate

    * Bitcoin payments: 1MU97wyf7msCVdaapneW2dW1uXP7oEQsFA
    * Gifts via other methods: http://www.nostate.com/support-nostatecom/

Authors

    * Mike Gogulski - http://www.nostate.com/ http://www.gogulski.com/

Credits

    * jsonrpc
    * PayCific

License

bitcoin-virtuemart is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!