user6024: I was looking over the Abe code once again, and came to a stumbling point. I can't understand how this is accurate:
tx['size'] = len(tx['tx'])

Transaction size is simply the length of the raw transaction string? I did not think that 1 character of that string was equal to one byte. 
Edit: while tinkering around with this with a simple python command line program, I was able to determine that the block size is actually half of the raw transaction string length. I also found out this: 
http://en.wikipedia.org/wiki/Hexadecimal

Each hexadecimal digit represents four binary digits (bits), and the primary use of hexadecimal notation is a human-friendly representation of binary-coded values in computing and digital electronics. One hexadecimal digit represents a nibble, which is half of an octet or byte (8 bits).

Though it still doesn't answer the question, why isn't the size divided by two in the ABE source code?

user48884: What you are looking at is the length of a string of hexadecimal characters. When representing data has a hex string, one byte is represented with two characters.  However the software does not store the block or transaction data as a hex string, it just stores it as an array of bytes which is later represented as a hex string with each byte having 2 characters. So when the software gets the size of the transaction, it just gets the number of bytes stored in the array, and since each byte corresponds to 2 characters in hexadecimal, when you get the hex string, the hex string will be twice as long as the number of bytes that the block or transaction actually is.

6024: <p>I was looking over the <a href="https://en.bitcoin.it/wiki/Abe" rel="nofollow">Abe</a> code once again, and came to a stumbling point. I can't understand how this is accurate:</p>

<pre><code>tx['size'] = len(tx['tx'])
</code></pre>

<p>Transaction size is simply the length of the raw transaction string? I did not think that 1 character of that string was equal to one byte. </p>

<p>Edit: while tinkering around with this with a simple python command line program, I was able to determine that the block size is actually half of the raw transaction string length. I also found out this: </p>

<p><a href="http://en.wikipedia.org/wiki/Hexadecimal" rel="nofollow">http://en.wikipedia.org/wiki/Hexadecimal</a></p>

<blockquote>
  <p>Each hexadecimal digit represents four binary digits (bits), and the primary use of hexadecimal notation is a human-friendly representation of binary-coded values in computing and digital electronics. One hexadecimal digit represents a nibble, which is half of an octet or byte (8 bits).</p>
</blockquote>

<p>Though it still doesn't answer the question, why isn't the size divided by two in the ABE source code?</p>
 48884: <p>What you are looking at is the length of a string of hexadecimal characters. When representing data has a hex string, one byte is represented with two characters.  However the software does not store the block or transaction data as a hex string, it just stores it as an array of bytes which is later represented as a hex string with each byte having 2 characters. So when the software gets the size of the transaction, it just gets the number of bytes stored in the array, and since each byte corresponds to 2 characters in hexadecimal, when you get the hex string, the hex string will be twice as long as the number of bytes that the block or transaction actually is.</p>
