Skip to content

Curl success, but Internal Server Error when commit transaction #501

Open
@leejie8008

Description

@leejie8008
  • bigchaindb-driver version: 0.6.2
  • bigchaindb version: 2.0.0b9
  • Python version: 3.6.8
  • Operating System: Virtual machine of Ubuntu 16, through Window 10 host

Description

I set up bigchaindb, with python driver and mongodb. Then, I try to run the code from Basic Usage Example, and receive Internal Server Error, but when I run curl http://localhost:9984/api/v1/transactions, it shows {"message": {"asset_id": "Missing required parameter in the JSON body or the post body or the query string"}}, which means that my connection is established.

How can I debug form here?

What I Did

from bigchaindb_driver import BigchainDB
from bigchaindb_driver.crypto import generate_keypair
from time import sleep
from sys import exit

bdb_root_url = 'localhost:9984'
# bdb_root_url = 'http://127.0.0.1:9984'
bdb = BigchainDB(bdb_root_url)

bicycle_asset = {
    'data': {
        'bicycle': {
            'serial_number': 'abcd1234',
            'manufacturer': 'bkfab'
        },
    },
}

bicycle_asset_metadata = {
    'planet': 'earth'
}

alice, bob = generate_keypair(), generate_keypair()

prepared_creation_tx = bdb.transactions.prepare(
    operation='CREATE',
    signers=alice.public_key,
    asset=bicycle_asset,
    metadata=bicycle_asset_metadata
)

fulfilled_creation_tx = bdb.transactions.fulfill(
    prepared_creation_tx,
    private_keys=alice.private_key
)

sent_creation_tx = bdb.transactions.send_commit(fulfilled_creation_tx)

txid = fulfilled_creation_tx['id']

print("tid: " + txid)

asset_id = txid

transfer_asset = {
    'id': asset_id
}

output_index = 0
output = fulfilled_creation_tx['outputs'][output_index]

transfer_input = {
    'fulfillment': output['condition']['details'],
    'fulfills': {
        'output_index': output_index,
        'transaction_id': fulfilled_creation_tx['id']
    },
    'owners_before': output['public_keys']
}

prepared_transfer_tx = bdb.transactions.prepare(
    operation='TRANSFER',
    asset=transfer_asset,
    inputs=transfer_input,
    recipients=bob.public_key,
)

fulfilled_transfer_tx = bdb.transactions.fulfill(
    prepared_transfer_tx,
    private_keys=alice.private_key,
)

sent_transfer_tx = bdb.transactions.send_commit(fulfilled_transfer_tx)

print("Is Bob the owner?",
    sent_transfer_tx['outputs'][0]['public_keys'][0] == bob.public_key)

print("Was Alice the previous owner?",
    fulfilled_transfer_tx['inputs'][0]['owners_before'][0] == alice.public_key)

My stacktrace

vagrant@ubuntu-bionic:/vagrant$ python3 main.py
Traceback (most recent call last):
  File "main.py", line 79, in <module>
    sent_creation_tx = bdb.transactions.send_commit(fulfilled_creation_tx)
  File "/usr/local/lib/python3.6/dist-packages/bigchaindb_driver/driver.py", line 375, in send_commit
    headers=headers)
  File "/usr/local/lib/python3.6/dist-packages/bigchaindb_driver/transport.py", line 82, in forward_request
    backoff_cap=backoff_cap,
  File "/usr/local/lib/python3.6/dist-packages/bigchaindb_driver/connection.py", line 91, in request
    **kwargs,
  File "/usr/local/lib/python3.6/dist-packages/bigchaindb_driver/connection.py", line 128, in _request
    raise exc_cls(response.status_code, text, json, kwargs['url'])
bigchaindb_driver.exceptions.TransportError: (500, '{"message": "Internal Server Error"}\n', {'message': 'Internal Server Error'}, 'http://localhost:9984/api/v1/transactions/')

vagrant@ubuntu-bionic:/vagrant$ curl http://localhost:9984
{"api":{"v1":{"assets":"/api/v1/assets/","blocks":"/api/v1/blocks/","docs":"https://docs.bigchaindb.com/projects/server/en/v2.0.0b9/http-client-server-api.html","metadata":"/api/v1/metadata/","outputs":"/api/v1/outputs/","streams":"ws://localhost:9985/api/v1/streams/valid_transactions","transactions":"/api/v1/transactions/","validators":"/api/v1/validators"}},"docs":"https://docs.bigchaindb.com/projects/server/en/v2.0.0b9/","software":"BigchainDB","version":"2.0.0b9"}

vagrant@ubuntu-bionic:/vagrant$ curl http://localhost:9984/api/v1/transactions
{"message": {"asset_id": "Missing required parameter in the JSON body or the post body or the query string"}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions