<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TierNolan</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TierNolan"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/wiki/Special:Contributions/TierNolan"/>
	<updated>2026-04-15T00:56:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Armory&amp;diff=61456</id>
		<title>Armory</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Armory&amp;diff=61456"/>
		<updated>2016-08-19T08:58:58Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: Fixed typo in link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bitcoin Armory&#039;&#039;&#039; is an open-source, python-based, wallet-management application for the Bitcoin network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The Armory project is no longer maintained by its creator&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1351792.0 The End of the Road for Armory]&amp;lt;/ref&amp;gt;, however there is an effort underway to [https://github.com/etotheipi/BitcoinArmory/issues/325 change to a new maintainer].  &lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Available for Windows, Mac OSX, and Linux.&lt;br /&gt;
* Licensed under AGPL v3.&lt;br /&gt;
* Encrypted wallet (optional).&lt;br /&gt;
* Maintain offline wallets for 100% security from online attackers.  &lt;br /&gt;
* Import addresses created with [[vanitygen|VanityGen]] or sweep funds from Casascius physical Bitcoins.&lt;br /&gt;
* Toggle between “Standard”, “Advanced”, and &amp;quot;Expert&amp;quot; modes to guarantee an appropriate set of options and information.&lt;br /&gt;
* Custom [[deterministic wallet]] format.&lt;br /&gt;
* Ability to add &amp;quot;Watching-Only&amp;quot; Wallets.&lt;br /&gt;
* Fragmented (M-of-N) Backups.&lt;br /&gt;
* SecurePrint for all Backup Types.&lt;br /&gt;
* Decentralized Multi-Signature &amp;quot;Lockboxes&amp;quot; (up to 7-of-7).&lt;br /&gt;
* Daemon/API for Services and Network Integration.&lt;br /&gt;
* Message Signing.&lt;br /&gt;
 &lt;br /&gt;
See the [http://bitcointalk.org/index.php?topic=56424.0 project&#039;s forum thread] for full details or on [https://bitcoinarmory.com/ their website]. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
The Armory project was announced January 3rd, 2012&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=56424.0 Armory - The most advanced Bitcoin Client in existence!] on [[BitcoinTalk Forum]]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Crowdfunding ===&lt;br /&gt;
&lt;br /&gt;
The project received $2,661 by 26 funders on crowdfunding site RocketHub. The project completed it&#039;s funding on 2012-03-19&amp;lt;ref&amp;gt;[http://www.rockethub.com/projects/6056-armory-bitcoin-development-funding Armory Bitcoin Development Funding]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Thin Client Security]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://btcarmory.com/ Armory Site]&lt;br /&gt;
* [https://bitcointalk.org/index.php?board=97.0 Armory project page on bitcointalk.org]&lt;br /&gt;
* [https://github.com/goatpig/BitcoinArmory Armory Source on GitHub]&lt;br /&gt;
* [http://www.expresscoin.com/wallets/bitcoin/armory How to Setup a Armory Bitcoin Wallet for Windows, Mac, and Linux]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discontinued&#039;&#039;&#039;&lt;br /&gt;
* [https://www.bitcoinarmory.com/ Armory Official Website] (ATI no longer maintains Armory)&lt;br /&gt;
* [https://github.com/etotheipi/BitcoinArmory Armory Project GitHub Page] (no longer maintained)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Clients]]&lt;br /&gt;
[[Category:Open Source]]&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Armory&amp;diff=61455</id>
		<title>Armory</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Armory&amp;diff=61455"/>
		<updated>2016-08-18T08:57:08Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: Adds links to new website and github (goatpig&amp;#039;s)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bitcoin Armory&#039;&#039;&#039; is an open-source, python-based, wallet-management application for the Bitcoin network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The Armory project is no longer maintained by its creator&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1351792.0 The End of the Road for Armory]&amp;lt;/ref&amp;gt;, however there is an effort underway to [https://github.com/etotheipi/BitcoinArmory/issues/325 change to a new maintainer].  &lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Available for Windows, Mac OSX, and Linux.&lt;br /&gt;
* Licensed under AGPL v3.&lt;br /&gt;
* Encrypted wallet (optional).&lt;br /&gt;
* Maintain offline wallets for 100% security from online attackers.  &lt;br /&gt;
* Import addresses created with [[vanitygen|VanityGen]] or sweep funds from Casascius physical Bitcoins.&lt;br /&gt;
* Toggle between “Standard”, “Advanced”, and &amp;quot;Expert&amp;quot; modes to guarantee an appropriate set of options and information.&lt;br /&gt;
* Custom [[deterministic wallet]] format.&lt;br /&gt;
* Ability to add &amp;quot;Watching-Only&amp;quot; Wallets.&lt;br /&gt;
* Fragmented (M-of-N) Backups.&lt;br /&gt;
* SecurePrint for all Backup Types.&lt;br /&gt;
* Decentralized Multi-Signature &amp;quot;Lockboxes&amp;quot; (up to 7-of-7).&lt;br /&gt;
* Daemon/API for Services and Network Integration.&lt;br /&gt;
* Message Signing.&lt;br /&gt;
 &lt;br /&gt;
See the [http://bitcointalk.org/index.php?topic=56424.0 project&#039;s forum thread] for full details or on [https://bitcoinarmory.com/ their website]. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
The Armory project was announced January 3rd, 2012&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=56424.0 Armory - The most advanced Bitcoin Client in existence!] on [[BitcoinTalk Forum]]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Crowdfunding ===&lt;br /&gt;
&lt;br /&gt;
The project received $2,661 by 26 funders on crowdfunding site RocketHub. The project completed it&#039;s funding on 2012-03-19&amp;lt;ref&amp;gt;[http://www.rockethub.com/projects/6056-armory-bitcoin-development-funding Armory Bitcoin Development Funding]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Thin Client Security]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://http://btcarmory.com/ Armory Site]&lt;br /&gt;
* [https://bitcointalk.org/index.php?board=97.0 Armory project page on bitcointalk.org]&lt;br /&gt;
* [https://github.com/goatpig/BitcoinArmory Armory Source on GitHub]&lt;br /&gt;
* [http://www.expresscoin.com/wallets/bitcoin/armory How to Setup a Armory Bitcoin Wallet for Windows, Mac, and Linux]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discontinued&#039;&#039;&#039;&lt;br /&gt;
* [https://www.bitcoinarmory.com/ Armory Official Website] (ATI no longer maintains Armory)&lt;br /&gt;
* [https://github.com/etotheipi/BitcoinArmory Armory Project GitHub Page] (no longer maintained)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Clients]]&lt;br /&gt;
[[Category:Open Source]]&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=OP_CHECKSIG&amp;diff=12376</id>
		<title>OP CHECKSIG</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=OP_CHECKSIG&amp;diff=12376"/>
		<updated>2011-07-03T00:55:00Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OP_CHECKSIG is [[Script|script]] opcode used to verify that the signature for a tx input is valid. OP_CHECKSIG expects two values to be on the stack, these are, in order of stack depth, the public key and the signature of the script. These two values are normally obtained by running the scriptSig script of the transaction input we are attempting to validate. After the scriptSig script is run the script is deleted but the stack is left as is, and then then scriptPubKey script from the previous transaction output that is now being spent is run, generally concluding in an OP_CHECKSIG. &lt;br /&gt;
&lt;br /&gt;
The standard scriptPubKey checks that the public key (actually a hash of) is a particular value, and that OP_CHECKSIG passes.&lt;br /&gt;
&lt;br /&gt;
For normal transaction inputs if the creator of the current transaction can successfully create a ScriptSig signature that uses the right public key for the ScriptPubKey of the transaction output they are attempting to spend, that transaction input is considered valid. &lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
In addition to the script code itself and the stack parameters, to operate OP_CHECKSIG needs to know the current transaction, the current transaction input, and the current hashtype (discussed later)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
# the public key and the signature are popped from the stack, in that order.&lt;br /&gt;
# A new subscript is created from the instruction from the most recent OP_CODESEPARATOR to the end of the script. If there is no OP_CODESEPARATOR the entire script becomes the subscript (hereby referred to as subScript)&lt;br /&gt;
# The sig is deleted from subScript.&lt;br /&gt;
# The hashtype is removed from the last byte of the sig and stored&lt;br /&gt;
# A deep copy is made of the current transaction (hereby referred to txCopy)&lt;br /&gt;
# All OP_CODESEPARATORS are removed from subScript&lt;br /&gt;
# The scripts for all transaction inputs in txCopy are set to empty scripts&lt;br /&gt;
# The script for the current transaction input in txCopy is set to subScript&lt;br /&gt;
&lt;br /&gt;
Now depending on the hashtype various things can happen to txCopy, these will be discussed individually&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hashtype Values (from script.h):&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Value&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_ALL || 0x00000001&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_NONE || 0x00000002&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_SINGLE || 0x00000003&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_ANYONECANPAY || 0x00000080&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_ALL (default) ===&lt;br /&gt;
&lt;br /&gt;
No special handling occurs in the default case&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_NONE ===&lt;br /&gt;
&lt;br /&gt;
# The output of txCopy is set to a vector of zero size.&lt;br /&gt;
# All other inputs aside from the current input in txCopy have their nSequence index set to zero&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_SINGLE ===&lt;br /&gt;
&lt;br /&gt;
# The output of txCopy is resized to the size of the current input index+1&lt;br /&gt;
# All other txCopy outputs aside from the output that is the same as the current input index are set to a blank script and a value of (long) -1;&lt;br /&gt;
# All other txCopy inputs aside from the current input are set to have an nSequence index of zero&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_ANYONECANPAY ===&lt;br /&gt;
&lt;br /&gt;
# The txCopy input vector is resized to a length of one&lt;br /&gt;
# The current input is set as the first and only member of this vector&lt;br /&gt;
&lt;br /&gt;
== Final signature ==&lt;br /&gt;
&lt;br /&gt;
An array of bytes is constructed from the serialized txCopy + four bytes for the hash type. This array is sha256 hashed twice, then the public key is used to to check the supplied signature against the hash. &lt;br /&gt;
&lt;br /&gt;
== Return values ==&lt;br /&gt;
&lt;br /&gt;
OP_CHECKSIG will push true to the stack if the check passed, false otherwise.&lt;br /&gt;
OP_CHECKSIG_VERIFY leaves nothing on the stack but will cause the script eval to fail immediately if the check does not pass.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=OP_CHECKSIG&amp;diff=12375</id>
		<title>OP CHECKSIG</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=OP_CHECKSIG&amp;diff=12375"/>
		<updated>2011-07-03T00:54:48Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OP_CHECKSIG is [[Script|script]] opcode used to verify that the signature for a tx input is valid. OP_CHECKSIG expects two values to be on the stack, these are, in order of stack depth, the public key and the signature of the script. These two values are normally obtained by running the scriptSig script of the transaction input we are attempting to validate. After the scriptSig script is run the script is deleted but the stack is left as is, and then then scriptPubKey script from the previous transaction output that is now being spent is run, generally concluding in an OP_CHECKSIG. &lt;br /&gt;
&lt;br /&gt;
The standard scriptPubKey checks that the public key (actually a hash of) is a particular value, and that OP_CHECKSIG passes.&lt;br /&gt;
&lt;br /&gt;
For normal transaction inputs if the creator of the current transaction can successfully create a ScriptSig signature that uses the right public key for the ScriptPubKey of the transaction output they are attempting to spend, that transaction input is considered valid. &lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
In addition to the script code itself and the stack parameters, to operate OP_CHECKSIG needs to know the current transaction, the current transaction input, and the current hashtype (discussed later)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
# the public key and the signature are popped from the stack, in that order.&lt;br /&gt;
# A new subscript is created from the instruction from the most recent OP_CODESEPARATOR to the end of the script. If there is no OP_CODESEPARATOR the entire script becomes the subscript (hereby referred to as subScript)&lt;br /&gt;
# The sig is deleted from subScript.&lt;br /&gt;
# The hashtype is removed from the last byte of the sig and stored&lt;br /&gt;
# A deep copy is made of the current transaction (hereby referred to txCopy)&lt;br /&gt;
# All OP_CODESEPARATORS are removed from subScript&lt;br /&gt;
# The scripts for all transaction inputs in txCopy are set to empty scripts&lt;br /&gt;
# The script for the current transaction input in txCopy is set to subScript&lt;br /&gt;
&lt;br /&gt;
Now depending on the hashtype various things can happen to txCopy, these will be discussed individually&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hashtype Values (from script.h):&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Value&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_ALL || 0x00000001&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_NONE || 0x00000002&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_SINGLE || 0x00000003&lt;br /&gt;
|-&lt;br /&gt;
| SIGHASH_ANYONECANPAY || 0x0000000080&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_ALL (default) ===&lt;br /&gt;
&lt;br /&gt;
No special handling occurs in the default case&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_NONE ===&lt;br /&gt;
&lt;br /&gt;
# The output of txCopy is set to a vector of zero size.&lt;br /&gt;
# All other inputs aside from the current input in txCopy have their nSequence index set to zero&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_SINGLE ===&lt;br /&gt;
&lt;br /&gt;
# The output of txCopy is resized to the size of the current input index+1&lt;br /&gt;
# All other txCopy outputs aside from the output that is the same as the current input index are set to a blank script and a value of (long) -1;&lt;br /&gt;
# All other txCopy inputs aside from the current input are set to have an nSequence index of zero&lt;br /&gt;
&lt;br /&gt;
=== Hashtype SIGHASH_ANYONECANPAY ===&lt;br /&gt;
&lt;br /&gt;
# The txCopy input vector is resized to a length of one&lt;br /&gt;
# The current input is set as the first and only member of this vector&lt;br /&gt;
&lt;br /&gt;
== Final signature ==&lt;br /&gt;
&lt;br /&gt;
An array of bytes is constructed from the serialized txCopy + four bytes for the hash type. This array is sha256 hashed twice, then the public key is used to to check the supplied signature against the hash. &lt;br /&gt;
&lt;br /&gt;
== Return values ==&lt;br /&gt;
&lt;br /&gt;
OP_CHECKSIG will push true to the stack if the check passed, false otherwise.&lt;br /&gt;
OP_CHECKSIG_VERIFY leaves nothing on the stack but will cause the script eval to fail immediately if the check does not pass.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Base_58_Encoding&amp;diff=12140</id>
		<title>Base 58 Encoding</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Base_58_Encoding&amp;diff=12140"/>
		<updated>2011-06-30T13:56:04Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Base 58 Encoding==&lt;br /&gt;
&lt;br /&gt;
Base 58 encoding is used for encoding addresses.&lt;br /&gt;
&lt;br /&gt;
Address = Base58Encode(RIPEMD160(SHA-256(public key))&lt;br /&gt;
&lt;br /&gt;
The public key is expressed as an encoded point.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
!Code&lt;br /&gt;
|Character&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|9&lt;br /&gt;
|A&lt;br /&gt;
|10&lt;br /&gt;
|B&lt;br /&gt;
|11&lt;br /&gt;
|C&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|D&lt;br /&gt;
|13&lt;br /&gt;
|E&lt;br /&gt;
|14&lt;br /&gt;
|F&lt;br /&gt;
|15&lt;br /&gt;
|G&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|H&lt;br /&gt;
|17&lt;br /&gt;
|J&lt;br /&gt;
|18&lt;br /&gt;
|K&lt;br /&gt;
|19&lt;br /&gt;
|L&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|M&lt;br /&gt;
|21&lt;br /&gt;
|N&lt;br /&gt;
|22&lt;br /&gt;
|P&lt;br /&gt;
|23&lt;br /&gt;
|Q&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|R&lt;br /&gt;
|25&lt;br /&gt;
|S&lt;br /&gt;
|26&lt;br /&gt;
|T&lt;br /&gt;
|27&lt;br /&gt;
|U&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|V&lt;br /&gt;
|29&lt;br /&gt;
|W&lt;br /&gt;
|30&lt;br /&gt;
|X&lt;br /&gt;
|31&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|Z&lt;br /&gt;
|33&lt;br /&gt;
|a&lt;br /&gt;
|34&lt;br /&gt;
|b&lt;br /&gt;
|35&lt;br /&gt;
|c&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|d&lt;br /&gt;
|37&lt;br /&gt;
|e&lt;br /&gt;
|38&lt;br /&gt;
|f&lt;br /&gt;
|39&lt;br /&gt;
|g&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|h&lt;br /&gt;
|41&lt;br /&gt;
|i&lt;br /&gt;
|42&lt;br /&gt;
|j&lt;br /&gt;
|43&lt;br /&gt;
|k&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|m&lt;br /&gt;
|45&lt;br /&gt;
|n&lt;br /&gt;
|46&lt;br /&gt;
|o&lt;br /&gt;
|47&lt;br /&gt;
|p&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|q&lt;br /&gt;
|49&lt;br /&gt;
|r&lt;br /&gt;
|50&lt;br /&gt;
|s&lt;br /&gt;
|51&lt;br /&gt;
|t&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|u&lt;br /&gt;
|53&lt;br /&gt;
|v&lt;br /&gt;
|54&lt;br /&gt;
|w&lt;br /&gt;
|55&lt;br /&gt;
|x&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|y&lt;br /&gt;
|57&lt;br /&gt;
|z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The algorithm for encoding is&lt;br /&gt;
&lt;br /&gt;
    code_string = &amp;quot;123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&amp;quot;&lt;br /&gt;
    x = convert_bytes_to_big_integer(hash_result)&lt;br /&gt;
    &lt;br /&gt;
    output_string = &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    while(x &amp;gt; 0) &lt;br /&gt;
        {&lt;br /&gt;
            (x, remainder) = divide(x, 58)&lt;br /&gt;
            output_string.append(output_string[remainder])&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
    repeat(number_of_leading_zeros_in_hash)&lt;br /&gt;
        {&lt;br /&gt;
        output_string.append(output_string[0]);&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
    output_string.reverse();&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
https://github.com/bitcoin/bitcoin/blob/master/src/base58.h&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Base_58_Encoding&amp;diff=12048</id>
		<title>Base 58 Encoding</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Base_58_Encoding&amp;diff=12048"/>
		<updated>2011-06-29T15:16:41Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: Created page with &amp;quot;==Base 58 Encoding==  Base 58 encoding is used for encoding addresses.  Address = Base58Encode(RIPEMD160(SHA-256(public key))  The public key is expresses as an encoded point.  {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Base 58 Encoding==&lt;br /&gt;
&lt;br /&gt;
Base 58 encoding is used for encoding addresses.&lt;br /&gt;
&lt;br /&gt;
Address = Base58Encode(RIPEMD160(SHA-256(public key))&lt;br /&gt;
&lt;br /&gt;
The public key is expresses as an encoded point.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
!Code&lt;br /&gt;
|Character&lt;br /&gt;
!Code&lt;br /&gt;
!Character&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|9&lt;br /&gt;
|A&lt;br /&gt;
|10&lt;br /&gt;
|B&lt;br /&gt;
|11&lt;br /&gt;
|C&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|D&lt;br /&gt;
|13&lt;br /&gt;
|E&lt;br /&gt;
|14&lt;br /&gt;
|F&lt;br /&gt;
|15&lt;br /&gt;
|G&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|H&lt;br /&gt;
|17&lt;br /&gt;
|J&lt;br /&gt;
|18&lt;br /&gt;
|K&lt;br /&gt;
|19&lt;br /&gt;
|L&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|M&lt;br /&gt;
|21&lt;br /&gt;
|N&lt;br /&gt;
|22&lt;br /&gt;
|P&lt;br /&gt;
|23&lt;br /&gt;
|Q&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|R&lt;br /&gt;
|25&lt;br /&gt;
|S&lt;br /&gt;
|26&lt;br /&gt;
|T&lt;br /&gt;
|27&lt;br /&gt;
|U&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|V&lt;br /&gt;
|29&lt;br /&gt;
|W&lt;br /&gt;
|30&lt;br /&gt;
|X&lt;br /&gt;
|31&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|Z&lt;br /&gt;
|33&lt;br /&gt;
|a&lt;br /&gt;
|34&lt;br /&gt;
|b&lt;br /&gt;
|35&lt;br /&gt;
|c&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|d&lt;br /&gt;
|37&lt;br /&gt;
|e&lt;br /&gt;
|38&lt;br /&gt;
|f&lt;br /&gt;
|39&lt;br /&gt;
|g&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|h&lt;br /&gt;
|41&lt;br /&gt;
|i&lt;br /&gt;
|42&lt;br /&gt;
|j&lt;br /&gt;
|43&lt;br /&gt;
|k&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|m&lt;br /&gt;
|45&lt;br /&gt;
|n&lt;br /&gt;
|46&lt;br /&gt;
|o&lt;br /&gt;
|47&lt;br /&gt;
|p&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|q&lt;br /&gt;
|49&lt;br /&gt;
|r&lt;br /&gt;
|50&lt;br /&gt;
|s&lt;br /&gt;
|51&lt;br /&gt;
|t&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|u&lt;br /&gt;
|53&lt;br /&gt;
|v&lt;br /&gt;
|54&lt;br /&gt;
|w&lt;br /&gt;
|55&lt;br /&gt;
|x&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|y&lt;br /&gt;
|57&lt;br /&gt;
|z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The algorithm for encoding is&lt;br /&gt;
&lt;br /&gt;
    code_string = &amp;quot;123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&amp;quot;&lt;br /&gt;
    x = convert_bytes_to_big_integer(hash_result)&lt;br /&gt;
    &lt;br /&gt;
    output_string = &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    while(x &amp;gt; 0) &lt;br /&gt;
        {&lt;br /&gt;
            (x, remainder) = divide(x, 58)&lt;br /&gt;
            output_string.append(output_string[remainder])&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
    repeat(number_of_leading_zeros_in_hash)&lt;br /&gt;
        {&lt;br /&gt;
        output_string.append(output_string[0]);&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
    output_string.reverse();&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
https://github.com/bitcoin/bitcoin/blob/master/src/base58.h&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Talk:Protocol_rules&amp;diff=11763</id>
		<title>Talk:Protocol rules</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Talk:Protocol_rules&amp;diff=11763"/>
		<updated>2011-06-26T12:53:56Z</updated>

		<summary type="html">&lt;p&gt;TierNolan: Created page with &amp;quot;= Proposed Recommended Rule Changes =  == Transaction override ==  === Change ===  {| class=&amp;quot;wikitable&amp;quot; |- | Before|| Tx || 9 || Reject if any other tx in the pool uses the same ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Proposed Recommended Rule Changes =&lt;br /&gt;
&lt;br /&gt;
== Transaction override ==&lt;br /&gt;
&lt;br /&gt;
=== Change ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Before|| Tx || 9 || Reject if any other tx in the pool uses the same transaction output as one used by this tx.&lt;br /&gt;
|-&lt;br /&gt;
| After || Tx || 9 || Reject if any other tx in the pool uses the same transaction output as one used by this tx, and has a greater or equal transaction fee&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rationale ===&lt;br /&gt;
&lt;br /&gt;
When the default client sends a transaction without a sufficient transaction fee to complete, the coin ends up in limbo.  The default client won&#039;t allow spending of any of the input coins, but the network won&#039;t forward the coin to any neighbours.  This means that miners never add the coin to the chain.&lt;br /&gt;
&lt;br /&gt;
This change would allow the client to re-send the transaction with an increased fee.  Clients which already saw the old transaction will still forward the new transaction, since it has a higher fee.  The client could even prompt the user about any transaction which has been pending for more than an hour or 2.&lt;/div&gt;</summary>
		<author><name>TierNolan</name></author>
	</entry>
</feed>